• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Tim Cooke
  • paul wheaton
  • Jeanne Boyarsky
  • Ron McLeod
Sheriffs:
  • Paul Clapham
  • Liutauras Vilda
  • Devaka Cooray
Saloon Keepers:
  • Tim Holloway
  • Roland Mueller
Bartenders:

Why I'm Coming Back to Java

 
Greenhorn
Posts: 5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi All,

After more than ten years of programming I'm coming back to Java. I've done dozens of programming languages and made money off them, but I started with Java and it's always been in the back of my mind.

The reasons are numerous and I'm sure I'll miss some of them. Firstly I don't do Java EE or even Java web programming. My work is .NET and if I had to find another job tomorrow it would probably be .NET. But over the years I found more and more of my code "looked" like Java. I missed Eclipse and its plugins. And then I started using Java-like libraries like the excellent StringTemplate. Even my hobbies gravitated towards Java with libgdx. And then I started noticing that even though startups begin with a dynamic language like Python or JavaScript or Ruby, mature startups eventually move to Java.

At the end of the day Java just "feels" right. All the things people thing are "wrong" about Java, I end up finding they are "right" with experience. For example checked and unchecked exceptions. I would much rather specify the exceptions, or at least some of them, in the interface for a client than specifying none of them. Properties, events, delegates, lambdas, LINQ... everything just seems to be an unnecessary layer of complexity. In a way they make my life easier but it's just more I have to keep in mind. Maybe it's because I don't do a lot of GUI development. Also the more experience I get, the more I see new fangled features as some sort of crutch for bad design or bad programming practices. LINQ seems great, but really all the queries should be done in the database and so on. At the end of the day I find myself just wanting to write JavaBeans. I'm getting older, fatter and possibly slower. If I wanted a challenge I would just do C and C++. Instead I just want to get the job done. If that means ten billion lines of boilerplate code so be it. It's also not as bad as it seems, with Eclipse and autogeneration. Programming in Java also seems to promote best practices, Like JUnit and so on. I truly missed the predictability of JUnit tests and good old Javadocs. I know that other languages have their equivalents, but it's not as part of the culture or workflow and is usually ignored. And if it's there it's a bastardization of the original, Java.

Long story short I doubt I will ever get a Java "job" because I don't want to do Java EE or learn the esoteric features of Java. I don't use Maven or Gradle or Scala. I will probably ignore Java 8 for quite awhile. But in my free time and for all my hobbies, and if I ever start my own business, I will use Java. For example if I ever started my own business it would not be consulting and would not be a traditional startup backed by venture capital, but would definitely be some sort of lifestyle entrepreneurship where I created an engine for some particular niche, once, then used that engine over and over to manipulate data (for example a data driven game). I cannot think of any language better for that kind of approach than Java. The only other ecosystem I would consider using that approach with is .NET. Maybe if I was younger or working with other people and time to market was important I would use JavaScript or another dynamic language. But I can simply take my time, build up a proper engine and once it's ready and "complete" I can launch. I have many many ideas and other languages would get there faster but none would be as tested and stable as if I used Java. Which is really what I care about, because I would want to make it once be done with it then perhaps add features but have a rock solid foundation. All advantages of Java-like programming.

I signed up for the Segewick Algorithms course on coursera, even though it's like going back to grade school for a seasoned programmer.

At the end of the day Java gets the job done. The more I think about Java the more it feels "right".
 
All of life is a contant education - Eleanor Roosevelt. Tiny ad:
Smokeless wood heat with a rocket mass heater
https://woodheat.net
reply
    Bookmark Topic Watch Topic
  • New Topic