I'm happy with the direction my life is taking. This blog started in April and was designed to monitor my progress along pursuing a career in software development. I have expressed on this blog how my path has changed from when I first started college. All of this comes from my passion to not just settle with a high level overview of how this digital world works, but an in depth study into how people are building the new world we live in. Tinkering, hacking, researching, and ultimately a commitment to learn to do it myself. I knew the difference between Information Technology in practice and Computer Science when I first started. I began studying for certifications and working as a computer technician knowing that I wanted to work with these systems and was content with being the IT guy. Let the engineers and Computer Scientist design the systems .. I just wanted to play with them. Juxtaposed in relation to a mechanic and mechanical engineer. Then the shift I described began to take place and I wanted to know deeper, play harder, and study longer. Tinkering with websites and watching YouTube videos began to be more commonplace until the day on April 12th when I said I wasn't going to be scared to dig deeper anymore and I wanted to learn how these systems that I love playing with so much, were constructed. Since then programming is something I have been ever fascinated with and my technological paradigm regarding my career and academia, shifted. I spend most of my time with web development and have openly stated that this is the area in which I want to delve. Knowing the innards of the HTTP protocol, Java, .NET, Javascript, responsive web sites, rich web applications, etc., I still want to be a back end web developer and create web services, work with the database, and spend grueling hours making sure users have pretty data to look at. But again .. I find myself on a quest for more. I pick up my cell phone and can no longer use it as a regular user but am thinking about activies firing off requests to Amazon Web Services and what type of negotiation is happening on the service layer ultimately delivering my YouTube video safe and sound. I want to know how my cell phone works ... so I built an Android application. I want to know how my computer works so I looked into the history of Windows development .. I think this is contagious and hopefully 21st century educators are doing more to incite this type of thinking. Well .. I'm a Linux guy now. Love Linux to death. Thinking of completely replacing my host systems at home with Ubuntu and developing full time as a command line hacker. Hell, I may even buy a MacBook and get some square frame glasses!
I digress ... (I do that a lot)
Linux is not just an operating system but the most successful open source software project known to mankind. With over 15 million lines of production code, 2,000 developers, and over 100 different distributions .. Linux has changed the world in which we live. Remember, up until recently I thought the world ran on Microsoft. So yes, I'm still giddy about this open world I am now aware of.
I don't want to change tracks or throw another set of books on my desk that I'll never read but this is something else I'd like to view from the inside out. Systems programming has been something I always said I wanted a taste of regardless of being a web developer or not. Increased use of mathematics and algorithms, operating system design, computer engineering, C and machine code is a world all its own. But the operating system is the fundamental building block of everything we produce. After all, web applications are also hosted on a system which provides a public end point for the public to access its resources. I don't think there would be anything wrong with learning some systems programming and Operating systems concepts. I think it would actually be beneficial. Studying how the computer works at its most primitive level could only produce promising results in my current work, it is something quite fun and interesting, and I'm going to be more or less exposed to and expected to know if I'm going to grab a graduate degree in Computer Science. I'd like to know more about this lower level world. Cutting through layers of abstraction and getting more intricately involved with technology should be quite exciting. So I'm not going to completely distract myself with my career goals but I have picked up an online course and a few textbooks and am going to learn a bit of new information. I'd like to learn how the code I write today works its way down to the lowest level of hardware and instruction and executes what I tell it to. I always said that at some point I would learn C. Being a younger developer in the new age, C isn't the first language we're exposed to anymore. Learning C and understanding where these newer technologies got their quirks from should help me in every aspect of computer programming and development. So I'll keep updating the blog with what I'm learning of that.
Well, I still have a good bit of my lunch break left. Time to go fire up a terminal and learn how machines work!
Happy Coding. Happy Learning. Happy Living.
Wednesday, September 24, 2014
Thursday, September 18, 2014
The World Wide Web and the JVM
I was surprised to log in and see some page views. Maybe some were from me or maybe someone stumbled upon the page. If so, that's cool. If not, you know I've said before this blog does the most good for me. It helps me organize my thoughts and keep up with things. So if you're reading this... cool :)
This is a long needed update. A lot has changed. As you can see its been a while and my journey has taken a pretty unexpected detour from what I had previously been documenting.
When this blog started back in April of 2014, I had purchased a few C# books and enthusiastically talked about how I was going to follow my plans through to becoming a programmer. The focus was very strict. C#, ASP.NET MVC, Javascript.
Along the lines there was a switch. I spend a lot of time searching the web and watching YouTube videos. Any self learning technologist would course. And I began to come across websites like Coursera and Udemy. I searched for different types of programming courses and was watching computer science courses on YouTube to supplement my knowledge and everything was in Java. Pretty much all the CS courses and the majority of Udemy and Coursera used Java or Ruby as the preferred language. Of course I can understand this. These are cross platform open source products that can be ran on both Windows and Unix systems. C# .. seemed more of a specific area type deal. Either you were developing for the Microsoft platform .. or your'e not. And that kinda got me thinking. I began to see all of these amazing frameworks. Project after project and community after community. I had never seen so many creative things. Yes there is a lot you can do with the .NET framework... but at the same time ... is there? I mean .. not to the extent of what there is for Javascript and Java. I fiddled with basic tutorials and watched some of the lectures and of course having been programming in C# for about five months .. Java came naturally. Well of course it did ... everything I had been using in the .NET framework. .. it all came from somewhere. What is the original de facto standard of the web? Who was the first to put portable and accessible object oriented programming anywhere on any platform .. who created the basis and set the precedent for so many other projects and languages that came before it? C, silly! But no I'm not talking about C here....Java. The answer is Java. What I had understood about Java before was that it was this older language (barely older than Javascript) that was really popular back in the day but was fading out and many said it was dead for the enterprise all together .. and really I had pictured it as this .. basically old language who set the bar back in the 90's but had been replaced by .NET and there were 100 other ways to do anything you wanted without Java.
Seems I was wrong
When looking through all of this and still pretty immersed in C# .. I wanted to build an Android application. It looked really appealing to me, I loved Android, and it was something new just to do a brief experiment with. Well I had Xamarin studio (free version) sitting on my taskbar and I could have used that to build a small app. .. but then came across multiple Android courses on Coursera and Udemy and even YouTube .. and thought why use Xamarin? Oh well...what was so bad about Java anyway? The syntax is so familiar to many other languages I thought .. so I might as well give it a try. I got a book for Android and some Hello World tutorial videos from YouTube. The best of these is here. And I downloaded the Eclipse based ADT and took it away.
It was fun..
So I did more research and made a few more Java programs and realized that it wasn't some monster and was thinking that this was pretty cool. But then the really big topic came up .. and with this topic is probably where a lot of the negativity and notorious reputation of complexity came from .. Web Applications.
Yes .. now here is where I would see Java just not kicking it anymore. I had read the horror stories of Java EE and saw how you had to filter through a myriad of tools, which all have different configuration, and then finally get a server up and running, parse through one million lines of XML and do something with beans? Wasn't too sure about that - and then finally Voila! A Java EE web application!
yeah yeah .. so I watched a few videos and experimented with Servlets and JSP and then started thinking .. yeah I can see how this was pretty good back in the day and it made a lot of things possible .. and I'm sure many are still using this technology today .. but its' just too verbose. I mean .. we have better options. One you could just skip out on this server nonsense and go full blown Javascript if you wanted .. but lets say that wasn't the case then anything could have been easier than this. Particularly what I had in mind was Ruby on Rails and ASP.NET .. These two technologies I was pretty sure at the time ruled the world. If it was a modern, responsive, data oriented enterprise web application .. then the world had to be running either Ruby on Rails or ASP.NET
You have to understand .. before doing all this research .. I came to realize that I thought .NET was THE biggest thing in web development. I thought the world ran on .NET and that this was as good as it gets.
Again ... so damn far from the truth. What I found was shocking.
** I was going to input a bunch of charts and numbers here but I got lazy .. so just take my word for it .. java is everywhere**
Well so now at this point I watched a course on Pluralsight called Java Web Fundamentals and saw kind of the general Servlet/JSP relationship worked. After knowing more about Java and that it is still a useful and viable language I had of course said that it would be worth learning. I would be encountering it more in school and online and of course it wouldn't hurt to have another tool in my arsenal. So things didn't really get going until this point.
I wanted to look at the things I was currently working on with .NET and find the Java alternative and compare how things in worked in these two different eco systems. Well, surely there had to be an MVC approach to developing Java web applications.
Surely there was ... I found many.
Spring MVC ... lets start here.
Upon looking around I came across the Spring framework. The Spring framework is a mature platform for Java enterprise applications. In general it appeared to be an IOC service but then found out that the platform has many things to offer. Since at that time I was doing ASP.NET MVC development I thought that I would check out Spring MVC. I looked it up and got more familiar with the Spring framework and saw how things went together. I found a lot of things that I liked and things that I thought resembled ASP.NET MVC very much so. Still .. it really wasn't the icing on the cake. It looked like a very capable and mature MVC framework .. but alas .. we're coming to the best part about the Java platform
Options.
There are so many options and different things to do within this ecosystem and Spring wasn't the only player in town.
Since this point I started studying and researching various technologies like the Google Web Toolkit, Vaadin, Wicket, Struts 2, Spring MVC and more.
Here is a comprehensive list and comparison of the major Java web frameworks and could help you make a decision based on what you're looking for.
Here
So Spring MVC was fine and dandy .. more or less I was comparing it to ASP.NET and what I could expect using the platform. There was still a good bit of XML and it did seem to be a pretty viable and sturdy solution for large enterprise apps .. but I was looking for something different. Where was the easy framework that allowed me to click a button and get up and running?
Let me explain that a bit..
So what I really like about the .NET framework is that when working with ONE vendor, ONE IDE, ONE platform .. you can expect ultimate compatibility and productivity. If you open up Visual Studio 2013 right now and create a new web application, VS will bootstrap a fully functioning, RESTful, and responsive web application to scaffold up and get working with .. and then with one more click you can instantly deploy it to Azure and have it running online. I really liked this ease of use and "point and click" mentality. I was getting frustrated with this when discovering Java alternatives because noting appeared to me to be that out of the box and standard. One of the downsides to having so much freedom and so many options is that not everything stays the same overtime and there is many ways to just setting up a project .. there are tons of cloud services like Heroku and Cloud Foundry to work with and there are even different tools for building the application structure .. for instace, Maven and Gradle. There are also different IDE's like Eclipse and IntelliJ ... so when following along with tutorials a lot of times things wouldn't work for me right out of the box because usually there were dependency problems, out of date packages, and different IDE settings that I would have to filter through to finally get working. I was kinda losing hope on productivity ... until I discovered a few more things.
The Play! 2 framework.
Now .. I ended up with Play! 2 after watching an outstanding video. This was what I was searching for! Hell, this wasn't comparable to ASP.NET MVC .. it was better! I was able to get an application up and running ... no Tomcat configuration .. the server was built in .. it was fast... I was able to get a sample app up and running and I was really having fun. I watched a course on Play! and decided to not learn Scala but go with Java .. things were going well with this but I didn't really stick with it.
After messing around with more stuff and doing more research I of course was coming to a few conclusions.
Everything I was in awe with the .NET framework was just technologies from Microsoft to solve problems that had already been in existence. I thought that everything like WPF and ASP.NET MVC was revolutionary .. no this was just the Microsoft version of it. There was a domain of choice between everything with Java and Microsoft. So now my eyes are opening up and I am realizing that that Microsoft doesn't run everything and there are many options. If I want to develop a desktop application I can use JavaFX .. or WPF. If I wanted to develop an MVC application... you could use ASP.NET or you could use Spring MVC .. I realized honestly .. that Java had already done this first. Upon research I'm basically seeing Microsofts attempt to throw a technology into every domain that had already been done. Like they were catching up to speed. Basically what I'm saying here is that there were many options to do everything you can do with the .NET framework long before Microsoft came around.
So that's what did it .. why am I using the .NET framework? Yes, it's good to know because it's in demand .. but am I limiting myself here? I kinda felt that way. And instead of making this strict lesson plan and learning every MS technology and then getting my web development certifications for Microsoft I decided that it was ok to play around with a different technology often and leave your comfort zone. I would in fact recommend it.
So back to the point ... I have realized yet another thing. The Java language had been called old and had many critics that were quick to say that it was lacking modern features and that C# was way ahead. Java means both a platform and language. The Java language isn't the most advanced language ...it doesn't have every single feature that every other language in the world has .. but it doesn't have to. Because I saw the real reason that this was worth pursuing. It wasn't really about Java as a language at all .. it was the JVM! This was what was making so many things possible. The JVM to this day is still a revolutionary eco system filled with many capabilities that has helped us shape the world we live in today. It gives architects so many options and freedoms when wanting to create something of their own liking that they can use with the versatility and sheer power of the JVM. You can be on the JVM and never write a single line of Java code. ... ladies and gentlemen you can't do this with the .NET framework! This is where comparing things ends. Maybe these two technologies aren't so identical. I'm discovering that this is a community that I want to be a part of. I like the JVM and think that there are many possibilities for more advanced frameworks in the future. I think "making the switch" is definitely well worth my time. Scala, Groovy, Clojure, JRuby.. these are huge projects and entirely new languages that can be implemented on a familiar, stable, and pre existing platform. Working with the JVM gives a developer, particularly a web developer, more choices and powerful options than I've ever seen with any other language or framework. Now one of the languages listed above is the topic in which this article is going to be closed. Groovy is changing things. Groovy has given Java developers the ability to write dymanic, concise, powerful and expressive code for the JVM while using a syntax like Ruby. Groovy really is the turning point for Java in my opinion. This is my preferred way to write programs for the JVM and is where I am attributing most of my time outside of work. Groovy gives the Java platform modern features, powerful and productive performance, and a new way to think about the future and capabilities of the Java platform.
Why Groovy .......... one word...
Grails
This is it ladies and gentlemen. The reason for this post.The reason for this update. And the reason for me no longer caring to write applications for ASP.NET MVC. Grails is the king of Java web development .. and truly may be the best decision for your next project. The only reason I say may is because of course to use Grails you already need to be in a Java environment. If you're using Ruby or .NET or PHP then this really doesn't matter. But Grails ... has changed the way we look at Java Enterprise Application development. Finally I found something powerfully expressive and easy to set up. Scaffolding, built in ORM, RESTful capabilities that far surpass that of .NET. ... This really was what I was looking for. I plan on putting a lot of time into learning this platform and becoming very proficient with the Groovy language. I like it better than ASP.NET. I think its more powerful and capable than ASP.NET .. the Groovy language beats even working with C#. .NET doesn't have a way to give developers Ruby like productivity plus keeping the power of the platform. I advise you to try it out and see how nice it is to cut out all of the fluff and really focus on expressively creating applications. I think that Grails has created a new future for Java web development and there isn't a reason to validly look at Java as some outdated web app technology that we have better opportunities for. The freedom to make these new technologies like Play! and Grails is really why I think an open community and technology is the best idea. That is what you don't get with .NET. Java web development isn't some pre historic history lesson. The JVM is modern, it is powerful, it is fun, and it is still the dominating force in application development today. I am excited to see where this goes and am happy in making my decision to learn this framework. I think we have something very good on our hands. So this is the official update that I promised to give. Why if you start following me online now you're going to see Java things instead of .NET things. This is the reason for it. Same goes professionally too. I am currently working as a Linux administrator and I am loving it. I love open source, I love Linux, I love this field and wouldn't have it any other way. I still plan on making a full time career out of development and I am still actively pursuing this as well as school. As far as a development job goes .. Java will be what I look for. I don't hate .NET and I would still work with it of course. But Java is the technology that, moving forward, I'd like to spend most of my time mastering both in and outside of the workplace.
So still working and learning as always and am counting the days until that beloved "I am now officially a Software Developer!" blog post comes through.
My life. My technology. My journey.
I'm having fun and I sure hope you are too. Because there really is no better place to be than learning, growing, and building our world together.
Happy Coding. Happy Living.
This is a long needed update. A lot has changed. As you can see its been a while and my journey has taken a pretty unexpected detour from what I had previously been documenting.
When this blog started back in April of 2014, I had purchased a few C# books and enthusiastically talked about how I was going to follow my plans through to becoming a programmer. The focus was very strict. C#, ASP.NET MVC, Javascript.
Along the lines there was a switch. I spend a lot of time searching the web and watching YouTube videos. Any self learning technologist would course. And I began to come across websites like Coursera and Udemy. I searched for different types of programming courses and was watching computer science courses on YouTube to supplement my knowledge and everything was in Java. Pretty much all the CS courses and the majority of Udemy and Coursera used Java or Ruby as the preferred language. Of course I can understand this. These are cross platform open source products that can be ran on both Windows and Unix systems. C# .. seemed more of a specific area type deal. Either you were developing for the Microsoft platform .. or your'e not. And that kinda got me thinking. I began to see all of these amazing frameworks. Project after project and community after community. I had never seen so many creative things. Yes there is a lot you can do with the .NET framework... but at the same time ... is there? I mean .. not to the extent of what there is for Javascript and Java. I fiddled with basic tutorials and watched some of the lectures and of course having been programming in C# for about five months .. Java came naturally. Well of course it did ... everything I had been using in the .NET framework. .. it all came from somewhere. What is the original de facto standard of the web? Who was the first to put portable and accessible object oriented programming anywhere on any platform .. who created the basis and set the precedent for so many other projects and languages that came before it? C, silly! But no I'm not talking about C here....Java. The answer is Java. What I had understood about Java before was that it was this older language (barely older than Javascript) that was really popular back in the day but was fading out and many said it was dead for the enterprise all together .. and really I had pictured it as this .. basically old language who set the bar back in the 90's but had been replaced by .NET and there were 100 other ways to do anything you wanted without Java.
Seems I was wrong
When looking through all of this and still pretty immersed in C# .. I wanted to build an Android application. It looked really appealing to me, I loved Android, and it was something new just to do a brief experiment with. Well I had Xamarin studio (free version) sitting on my taskbar and I could have used that to build a small app. .. but then came across multiple Android courses on Coursera and Udemy and even YouTube .. and thought why use Xamarin? Oh well...what was so bad about Java anyway? The syntax is so familiar to many other languages I thought .. so I might as well give it a try. I got a book for Android and some Hello World tutorial videos from YouTube. The best of these is here. And I downloaded the Eclipse based ADT and took it away.
It was fun..
So I did more research and made a few more Java programs and realized that it wasn't some monster and was thinking that this was pretty cool. But then the really big topic came up .. and with this topic is probably where a lot of the negativity and notorious reputation of complexity came from .. Web Applications.
Yes .. now here is where I would see Java just not kicking it anymore. I had read the horror stories of Java EE and saw how you had to filter through a myriad of tools, which all have different configuration, and then finally get a server up and running, parse through one million lines of XML and do something with beans? Wasn't too sure about that - and then finally Voila! A Java EE web application!
yeah yeah .. so I watched a few videos and experimented with Servlets and JSP and then started thinking .. yeah I can see how this was pretty good back in the day and it made a lot of things possible .. and I'm sure many are still using this technology today .. but its' just too verbose. I mean .. we have better options. One you could just skip out on this server nonsense and go full blown Javascript if you wanted .. but lets say that wasn't the case then anything could have been easier than this. Particularly what I had in mind was Ruby on Rails and ASP.NET .. These two technologies I was pretty sure at the time ruled the world. If it was a modern, responsive, data oriented enterprise web application .. then the world had to be running either Ruby on Rails or ASP.NET
You have to understand .. before doing all this research .. I came to realize that I thought .NET was THE biggest thing in web development. I thought the world ran on .NET and that this was as good as it gets.
Again ... so damn far from the truth. What I found was shocking.
** I was going to input a bunch of charts and numbers here but I got lazy .. so just take my word for it .. java is everywhere**
Well so now at this point I watched a course on Pluralsight called Java Web Fundamentals and saw kind of the general Servlet/JSP relationship worked. After knowing more about Java and that it is still a useful and viable language I had of course said that it would be worth learning. I would be encountering it more in school and online and of course it wouldn't hurt to have another tool in my arsenal. So things didn't really get going until this point.
I wanted to look at the things I was currently working on with .NET and find the Java alternative and compare how things in worked in these two different eco systems. Well, surely there had to be an MVC approach to developing Java web applications.
Surely there was ... I found many.
Spring MVC ... lets start here.
Upon looking around I came across the Spring framework. The Spring framework is a mature platform for Java enterprise applications. In general it appeared to be an IOC service but then found out that the platform has many things to offer. Since at that time I was doing ASP.NET MVC development I thought that I would check out Spring MVC. I looked it up and got more familiar with the Spring framework and saw how things went together. I found a lot of things that I liked and things that I thought resembled ASP.NET MVC very much so. Still .. it really wasn't the icing on the cake. It looked like a very capable and mature MVC framework .. but alas .. we're coming to the best part about the Java platform
Options.
There are so many options and different things to do within this ecosystem and Spring wasn't the only player in town.
Since this point I started studying and researching various technologies like the Google Web Toolkit, Vaadin, Wicket, Struts 2, Spring MVC and more.
Here is a comprehensive list and comparison of the major Java web frameworks and could help you make a decision based on what you're looking for.
Here
So Spring MVC was fine and dandy .. more or less I was comparing it to ASP.NET and what I could expect using the platform. There was still a good bit of XML and it did seem to be a pretty viable and sturdy solution for large enterprise apps .. but I was looking for something different. Where was the easy framework that allowed me to click a button and get up and running?
Let me explain that a bit..
So what I really like about the .NET framework is that when working with ONE vendor, ONE IDE, ONE platform .. you can expect ultimate compatibility and productivity. If you open up Visual Studio 2013 right now and create a new web application, VS will bootstrap a fully functioning, RESTful, and responsive web application to scaffold up and get working with .. and then with one more click you can instantly deploy it to Azure and have it running online. I really liked this ease of use and "point and click" mentality. I was getting frustrated with this when discovering Java alternatives because noting appeared to me to be that out of the box and standard. One of the downsides to having so much freedom and so many options is that not everything stays the same overtime and there is many ways to just setting up a project .. there are tons of cloud services like Heroku and Cloud Foundry to work with and there are even different tools for building the application structure .. for instace, Maven and Gradle. There are also different IDE's like Eclipse and IntelliJ ... so when following along with tutorials a lot of times things wouldn't work for me right out of the box because usually there were dependency problems, out of date packages, and different IDE settings that I would have to filter through to finally get working. I was kinda losing hope on productivity ... until I discovered a few more things.
The Play! 2 framework.
Now .. I ended up with Play! 2 after watching an outstanding video. This was what I was searching for! Hell, this wasn't comparable to ASP.NET MVC .. it was better! I was able to get an application up and running ... no Tomcat configuration .. the server was built in .. it was fast... I was able to get a sample app up and running and I was really having fun. I watched a course on Play! and decided to not learn Scala but go with Java .. things were going well with this but I didn't really stick with it.
After messing around with more stuff and doing more research I of course was coming to a few conclusions.
Everything I was in awe with the .NET framework was just technologies from Microsoft to solve problems that had already been in existence. I thought that everything like WPF and ASP.NET MVC was revolutionary .. no this was just the Microsoft version of it. There was a domain of choice between everything with Java and Microsoft. So now my eyes are opening up and I am realizing that that Microsoft doesn't run everything and there are many options. If I want to develop a desktop application I can use JavaFX .. or WPF. If I wanted to develop an MVC application... you could use ASP.NET or you could use Spring MVC .. I realized honestly .. that Java had already done this first. Upon research I'm basically seeing Microsofts attempt to throw a technology into every domain that had already been done. Like they were catching up to speed. Basically what I'm saying here is that there were many options to do everything you can do with the .NET framework long before Microsoft came around.
So that's what did it .. why am I using the .NET framework? Yes, it's good to know because it's in demand .. but am I limiting myself here? I kinda felt that way. And instead of making this strict lesson plan and learning every MS technology and then getting my web development certifications for Microsoft I decided that it was ok to play around with a different technology often and leave your comfort zone. I would in fact recommend it.
So back to the point ... I have realized yet another thing. The Java language had been called old and had many critics that were quick to say that it was lacking modern features and that C# was way ahead. Java means both a platform and language. The Java language isn't the most advanced language ...it doesn't have every single feature that every other language in the world has .. but it doesn't have to. Because I saw the real reason that this was worth pursuing. It wasn't really about Java as a language at all .. it was the JVM! This was what was making so many things possible. The JVM to this day is still a revolutionary eco system filled with many capabilities that has helped us shape the world we live in today. It gives architects so many options and freedoms when wanting to create something of their own liking that they can use with the versatility and sheer power of the JVM. You can be on the JVM and never write a single line of Java code. ... ladies and gentlemen you can't do this with the .NET framework! This is where comparing things ends. Maybe these two technologies aren't so identical. I'm discovering that this is a community that I want to be a part of. I like the JVM and think that there are many possibilities for more advanced frameworks in the future. I think "making the switch" is definitely well worth my time. Scala, Groovy, Clojure, JRuby.. these are huge projects and entirely new languages that can be implemented on a familiar, stable, and pre existing platform. Working with the JVM gives a developer, particularly a web developer, more choices and powerful options than I've ever seen with any other language or framework. Now one of the languages listed above is the topic in which this article is going to be closed. Groovy is changing things. Groovy has given Java developers the ability to write dymanic, concise, powerful and expressive code for the JVM while using a syntax like Ruby. Groovy really is the turning point for Java in my opinion. This is my preferred way to write programs for the JVM and is where I am attributing most of my time outside of work. Groovy gives the Java platform modern features, powerful and productive performance, and a new way to think about the future and capabilities of the Java platform.
Why Groovy .......... one word...
Grails
This is it ladies and gentlemen. The reason for this post.The reason for this update. And the reason for me no longer caring to write applications for ASP.NET MVC. Grails is the king of Java web development .. and truly may be the best decision for your next project. The only reason I say may is because of course to use Grails you already need to be in a Java environment. If you're using Ruby or .NET or PHP then this really doesn't matter. But Grails ... has changed the way we look at Java Enterprise Application development. Finally I found something powerfully expressive and easy to set up. Scaffolding, built in ORM, RESTful capabilities that far surpass that of .NET. ... This really was what I was looking for. I plan on putting a lot of time into learning this platform and becoming very proficient with the Groovy language. I like it better than ASP.NET. I think its more powerful and capable than ASP.NET .. the Groovy language beats even working with C#. .NET doesn't have a way to give developers Ruby like productivity plus keeping the power of the platform. I advise you to try it out and see how nice it is to cut out all of the fluff and really focus on expressively creating applications. I think that Grails has created a new future for Java web development and there isn't a reason to validly look at Java as some outdated web app technology that we have better opportunities for. The freedom to make these new technologies like Play! and Grails is really why I think an open community and technology is the best idea. That is what you don't get with .NET. Java web development isn't some pre historic history lesson. The JVM is modern, it is powerful, it is fun, and it is still the dominating force in application development today. I am excited to see where this goes and am happy in making my decision to learn this framework. I think we have something very good on our hands. So this is the official update that I promised to give. Why if you start following me online now you're going to see Java things instead of .NET things. This is the reason for it. Same goes professionally too. I am currently working as a Linux administrator and I am loving it. I love open source, I love Linux, I love this field and wouldn't have it any other way. I still plan on making a full time career out of development and I am still actively pursuing this as well as school. As far as a development job goes .. Java will be what I look for. I don't hate .NET and I would still work with it of course. But Java is the technology that, moving forward, I'd like to spend most of my time mastering both in and outside of the workplace.
So still working and learning as always and am counting the days until that beloved "I am now officially a Software Developer!" blog post comes through.
My life. My technology. My journey.
I'm having fun and I sure hope you are too. Because there really is no better place to be than learning, growing, and building our world together.
Happy Coding. Happy Living.
Subscribe to:
Posts (Atom)