Domain: springsource.org
Stories and comments across the archive that link to springsource.org.
Comments · 13
-
Re:Discussion TFA/TFS is perhaps a proxy for
What transactional application framework would you use today (April 2013) for your web-scale application,
For Java, the big one these days seems to be Spring.
I suppose that "web-scale" means "size of the
.war files" in this context? -
Re:Discussion TFA/TFS is perhaps a proxy for
What transactional application framework would you use today (April 2013) for your web-scale application,
For Java, the big one these days seems to be Spring.
-
Re:15 years and out? Really?
(Looks around the cube farm at all the gray and white hair in one of the largest financial institutions in the U.S.) Wow, looks like we gotta fire a whole bunch of people with 30+ years of experience then.
Clearly, this clown has never had to maintain a complex application with 4 or 5 9s uptime requirements. Nor has this idiot ever had to keep said application in compliance with a dozen different regulatory regimes. Or tried to figure out how he was going to interface his brand new, spiffy mobile Web 3.0 application with other complex applications that may have been written before he was born!
Trust me. There isn't a large bank anywhere in the world that doesn't value its experienced people. When you have to protect your customers' life savings, you absolutely do NOT want a team of nothing but young hard chargers. You need us old timers to look out for the pot-holes we stepped in a long time ago so you don't see your company's name splashed all over the 5:30 national news.
Or as one the youngest (at 55) of the best software guys I ever worked with put it, "Software Engineering is a circus, everyone likes to make a big song and dance show, but in the end someone has to clean up after the elephants." So while that young hotshot may work long hours and implement a hundred different versions of AbstractSingletonProxyFactoryBean and the like all in one codebase, we'll always need that old FORTRAN-trained duffer to test it, fix it and refactor it so that it's readable. And with retirement less than 15 years away, we don't need to obfuscate our work for additional job security. Hotshots are wonderful for young start-up companies and they're an excellent part of the mix in any good company, but if you want your company to last longer than pets.com and napster, you'd better look at the long term and for that there is nothing better than experience.
You also need us old timers around to teach the youngsters that working 60+ hours a week needs to be the exception, not the rule. It's been shown time and again that at that point, you're beyond the point of diminishing returns. The mistakes made when people are exhausted from overwork will require so much re-work that the pace simply isn't worth it at least 80% of the time.
If Ferose were smart enough to look beyond this week's stock price, he might understand that one of the reasons IT has shifted to his part of the world has to do with the demographics of a high birthrate, there are many many people in that 18-25 age range who will put up with anything, work long hours, have no family obligations, no need for life in the work/life balance. But that all of these countries are going through demographic changes which will make it nearly impossible to continue to take advantage of the "long tail"/ race to the bottom wage that was once made possible by a high birthrate. This change has already happened in China and will soon take place in other parts of the world. Countries and companies with mandatory retirement ages of 70 and lower will be at a significant disadvantage.
-
Stick with Java
Don't bother learning PHP it'll just slow you down learning the semantics of a new language and if you're used to dealing with Java PHP will feel like a joke. Java gets a bad wrap but I've found it to be faster than PHP in my tests.
I build most of my sites in Java using my own MVC framework. I've done some sites in PHP and have had to modify other PHP sites as well as looked into other languages. I still like Java the best and you can find a library to do almost anything you want. The only reason I'd pick something like PHP these days is if I don't want to build a site myself and want to use something prebuilt like wordpress or Joomla.
The only downside is that your servlet container (ie tomcat) is persistent and will take up a bit of memory. Not a huge amount but it makes it difficult to find cheap webhosting because providers can't throw thousands of websites on a server like they can with plain HTML and PHP. Try and find a good cheap VPS it's more secure and you won't have to worry about your site getting defaced because some other idiot didn't update their PHP software. That's happened to me.
Don't go with new frameworks. Go with popular ones that have been around for a while. I've been bitten in the ass when I built a website for a client and the framework I used was no longer around.
Spring is a good choice. I like to use NetBeans as my IDE. I've found it to work the best for me.
-
Java is great for websites
Almost all the sites I've built are written in Java. Stick with Java. I've written sites in PHP and I've also had to work on updates to some PHP sites. If you're already familiar with Java dealing with PHP will feel like a joke. PHP is great when you don't want to write your own software since there are so many publicly available stuff out there in PHP. Don't worry, you won't find a lack of Java libraries that will do anything you want to do.
Don't bother trying to learn a new language because you'll just slow yourself down trying to learn the semantics of the language instead of the details of the new libraries you'll be using. I know java gets a bad wrap in terms of performance but I've always found that Java kicks PHP's ass in terms of performance in the tests I've done.
The main issue with java is that when you're using a servlet container like Tomcat, the process runs constantly and takes up memory. It's not that much but it's hard to find Java hosting because the memory issues makes it hard for a webhost to put thousands of websites on the same server.
Your best bet is going to be to find a cheap VPN when you get started but check the big webhosts to. I remember LunarPages used to offer JSP support in the past.
There are a bunch of different frameworks. Stick to ones that are popular because you'd rather have some limited functionality now rather than an unsupported framework in the future. Which has happened to me.
I believe right now that's Spring but Struts is still pretty popular too.
I've found NetBeans to be a great IDE and it supports Spring.
-
Look at Spring Roo.
Specifically, look into the Spring Framework and Spring Roo.
Here's where you start: http://www.springsource.org/get-started
Spring Roo is a shell that does code generation and scaffolding for Java web applications. You're basically 5 minutes from a basic CRUD app with a couple of entities (the typical Rails hello-world-I-made-a-blog stuff). It puts together a really nice stack based on Spring MVC, Maven, JPA and your choice of ORM and view technology. It makes heavy use of AspectJ to keep its boilerplate out of your actual code, so if you decide to stop using Roo in the future, you can - there's no hard dependency on it, it just generates code.. If you decide to do something fancy like use GWT for your UI, Roo can help with that as well.
Quick Roo demo: http://youtu.be/K78vL72XDqw
Spring is a *huge* set of frameworks based around an excellent IoC container. Roo makes getting started simple, and lets you see how everything is supposed to fit together, which is usually the hardest part in the Java world. Just keep in mind that Spring is not web-focused - it has modules for web stuff, MVC, templating, etc., but also a ton of other stuff you probably don't need.
Recommend you grab the Spring Tool Suite from http://www.springsource.org/springsource-tool-suite-download (no need to reg, just agree to terms). It's just Eclipse done up nicely with all the extensions you'll need, Roo, and Maven all ready to go. Don't waste time trying to set up vanilla Eclipse.
One more thing: Ignore all the Java hate. All the PHP/Ruby/Python hobbyists are missing out on the joys of proper typing and top-notch tooling. Duck typing doesn't just *sound* dumb.
Good luck.
-
Look at Spring Roo.
Specifically, look into the Spring Framework and Spring Roo.
Here's where you start: http://www.springsource.org/get-started
Spring Roo is a shell that does code generation and scaffolding for Java web applications. You're basically 5 minutes from a basic CRUD app with a couple of entities (the typical Rails hello-world-I-made-a-blog stuff). It puts together a really nice stack based on Spring MVC, Maven, JPA and your choice of ORM and view technology. It makes heavy use of AspectJ to keep its boilerplate out of your actual code, so if you decide to stop using Roo in the future, you can - there's no hard dependency on it, it just generates code.. If you decide to do something fancy like use GWT for your UI, Roo can help with that as well.
Quick Roo demo: http://youtu.be/K78vL72XDqw
Spring is a *huge* set of frameworks based around an excellent IoC container. Roo makes getting started simple, and lets you see how everything is supposed to fit together, which is usually the hardest part in the Java world. Just keep in mind that Spring is not web-focused - it has modules for web stuff, MVC, templating, etc., but also a ton of other stuff you probably don't need.
Recommend you grab the Spring Tool Suite from http://www.springsource.org/springsource-tool-suite-download (no need to reg, just agree to terms). It's just Eclipse done up nicely with all the extensions you'll need, Roo, and Maven all ready to go. Don't waste time trying to set up vanilla Eclipse.
One more thing: Ignore all the Java hate. All the PHP/Ruby/Python hobbyists are missing out on the joys of proper typing and top-notch tooling. Duck typing doesn't just *sound* dumb.
Good luck.
-
Java EE, Spring Roo and Google Web Toolkit
I am having lots of fun with Spring Roo and GWT (Google Web Toolkit). The latter is supported by the former.
Roo allows to generate automatically a CRUD application with different technologies (AFAIK it currently supports GWT, Spring MVC and Web Flow). GWT allows to create single-page applications, using the server as a service and data provider only. In other words, let the browser do the hard work :-D
Single-page applications are much faster than server-centric web applications. Security can be managed effectively at service level, for example using Spring Security annotations. -
Java EE, Spring Roo and Google Web Toolkit
I am having lots of fun with Spring Roo and GWT (Google Web Toolkit). The latter is supported by the former.
Roo allows to generate automatically a CRUD application with different technologies (AFAIK it currently supports GWT, Spring MVC and Web Flow). GWT allows to create single-page applications, using the server as a service and data provider only. In other words, let the browser do the hard work :-D
Single-page applications are much faster than server-centric web applications. Security can be managed effectively at service level, for example using Spring Security annotations. -
Re:Tomcat is as rock solid as it gets
you just don't get it, there is no reliable way to know server side if the user closed his browser, disconnected his network adapter or went to another site, sure, you can use ThreadPoolExecutor#awaitTermination to timeout the thread. http://forum.springsource.org/showthread.php?t=87480
When you say "Eventually what may happen is that the entire thing becomes useless until it's restarted." means that your code is badly written and uses too much resources, just fix that code.
-
Re:The Ultimate Reference??
http://www.google.ca/search?q=%22spring+dynamic+modules%22
Very first result (of 646,000) is: http://www.springsource.org/osgi
-
Re:Oracle is Evil, C# Java
Even at the start, when C# allowed exceptions to be thrown without declaration, it had already started down the route of shooting yourself in the foot for the type of large software engineering projects with many developers that Java is mostly used for.
Of all languages with exceptions, Java is the only one I know of which has checked exceptions. Hm, wonder why...
Also got to wonder why the single most popular Java framework deliberately avoids checked exceptions:
Checked exceptions are overused in Java. A platform shouldn't force you to catch exceptions you're unlikely to be able to recover from.
-
Re:Java still rules server side
It's funny that you mention Web Services, as it's one of the places Java has actually moved forwards.
Gone are the days where you need Apache Axis. Java comes with a web service stack right out of the box now. They're really easy to set up in Netbeans, too.
Unfortunately, the Java poster-child, Eclipse, hasn't adopted this web service stack yet. Not that I dislike Eclipse, but it tends to ignore things added to Java in favor of third party implementations... such as Apache Axis 1... and SWT.
Given that SWT is an Eclipse product, Eclipse has exceptionally poor support for it. Eclipse's Visual Editor Project doesn't even work on Eclipse 3.3, 3.4, or 3.5... the latest stable version of VEP being released on January 30, 2007. It finally resumed development a few months ago, but who knows how long it will be until a stable release comes out.
Servlets are downright evil. JSP's tag soup isn't much better. JSF sounds interesting, but until Facelets become more common, it's fairly useless.
Even Oracle is starting to push certain third party products. Oracle's Eclipse distribution (which we use where I work) includes plugins for webapp tools such as the Spring Framework.