How does this compare to Apache Geronimo?

Story: Sun's Latest Turn With Open Source Nuts And BoltsTotal Replies: 18
Author Content
DarrenR114

Mar 02, 2007
7:31 AM EDT
Or how about JBoss?

Do we really need Yet Another J2EE ?
hchaudh1

Mar 02, 2007
10:36 AM EDT
Yes we kind of do. IBM (or JBoss or Geronimo, AFAIK) has not released anything that satisfies the JEE5 specs. The JEE5 spec is important in the Java space because of new technologies like EJB3, annotational Web Services etc.

tuxtom

Mar 03, 2007
6:00 PM EDT
95% of what is developed using the bloat of J2EE could be handled by a simple LAMP stack. Most Java development is overly-complex due to the fact that the features are in the language (and Java types thus feel the need to implement them), not that those features are necessarily useful or required by the project. Java projects are defined by the complexity and broad scope of the language, not the simplicity and CRUD requirements of 95% of the projects themselves. That is, Java exists as it does today only to justify itself and the budgets of those using it. We can do much better with less.
swbrown

Mar 03, 2007
6:55 PM EDT
In their defense, 9 out of 10 of their sites don't seem to be hackable, unlike LAMP sites.
tuxtom

Mar 04, 2007
1:54 AM EDT
Every site is hackable...by somebody. True, it is easier to put up a LAMP site, and there are a lot more of them, and their developers and administrators generally have less experience than those who deploy Java, so you will find more insecure examples. However, security (hackability) goes far beyond the development platform. LAMP can be bulletproof and J2EE can be a security nightmare...depends on who's doing the work.
swbrown

Mar 04, 2007
5:05 PM EDT
> Every site is hackable...by somebody. True, it is easier to put up a LAMP site, and there are a lot more of them, and their developers and administrators generally have less experience than those who deploy Java, so you will find more insecure examples.

Things written in PHP, in general, are basically one giant security hole. A lot of it is the language's fault (many of these are fixed or removed in PHP 6 at least) - 'magic quotes', lack of positional parameter MySQL bindings, flakey error handling and suppression, 'safe mode', etc.. Just really poorly designed and fundamentally broken parts of that language that wind up responsible for the majority of security holes in PHP applications, just like sprintf() and friends in C.

Similar problems with MySQL as a backend due to the near total lack of type checking and bizarre type casting edge cases and 'features'.
tuxchick

Mar 04, 2007
5:46 PM EDT
what I always wonder, why not just stick with Perl? What advantages do you get with PHP, besides bigger better faster security holes?
Sander_Marechal

Mar 04, 2007
10:04 PM EDT
PHP is easier to learn. They don't call Perl the "Swiss army chainsaw" for nothing. There's literally dozens of different ways to accomplish a specific task. Also, in the past Perl would only run through the CGI interface while PHP could be used directly by Apache. That's a major speed boost for PHP. These days there's mod_perl for Apache which evens the score again.
tuxtom

Mar 04, 2007
11:06 PM EDT
LAMP doesn't refer exclusively to PHP. The "P" can be Perl or Python, as well. And of course, Ruby is getting popular in some circles. I was reading an article a few weeks ago regarding grid computing and how the "scripting" languages (interpreted languages) are ideal for development of grid-deployed apps (I need to find that and cite it...).

I Love Perl. It is my favorite language. It is also a "write only" language. When I need a good brain teaser all I need to do is look at a Perl program I wrote more than six months ago and I'm busy for a weekend. God forbid I have to figure out someone else's Perl. Perl is kinda like underwear...it's comfortable and close to you, but you can't really share it with others. You can really mess with people's heads with Perl...really make them feel inadequate. Perl makes for good job security because no one else will ever figure out what you did and they'll have to keep you (raise) or hire you on as a high-paid consultant to keep them running. PHP is a lot easier to use for general web scripting...some people say PHP means "People Hate Perl". I hate people who hate Perl. How can you hate Larry Wall?

I've never worked with Python, but a young developer I mentored a few years back swears by it and makes a good living with it. Ruby shoes a lot of promise...there is a lot of hype (cooling a bit) and a LOT of resistance (which means it is dangerous to the current paradigm). Funny thing is we were rolling our own MVC stuff with Java 1.2 SE, before Struts and J2EE and before all these "Revolutionary Frameworks" (RoR, CakePHP, etc...) appeared in the past few years practically claiming to have invented MVC, which is really an elementary concept. Well, everything evolves and there is always going to be a new generation re-discovering and re-inventing what has come before them.

My very favorite acronym: WIMP (Windows, IIS, MySQL, PHP/Perl/Python)
swbrown

Mar 05, 2007
3:16 AM EDT
> what I always wonder, why not just stick with Perl?

Because it's impossible to maintain anything large in Perl without having slash-proof wrists. ;) The "There's more than one way to do it" design of Perl means developers using Perl tend to use more than one way to do things, the result is that each developer needs to be very experienced with a very large portion of the language in order to do effective maintenance on a large, shared code base with several devs. A more practical language design guiding motto would have been "There's only one way to do it, and it's the best way".

That aspect of Perl has served as a warning to future languages not to make the same mistake. E.g., if you type "import this" in Python, one of the lines is "There should be one-- and preferably only one --obvious way to do it.".
DarrenR114

Mar 05, 2007
5:00 AM EDT
WIMPS for me was "Windows Icons Menus Panels Skels" - back in the bad old days of mainframe programming ... Not much call for COBOL programmers these days ...
bigg

Mar 05, 2007
6:23 AM EDT
The best description I have found for Perl is that it is like a novel written in English, with Japanese, Chinese, Korean, Russian and French paragraphs inserted at random. Once you finally master those languages, some wise guy decides to throw in German and Arabic.
Sander_Marechal

Mar 05, 2007
1:42 PM EDT
Quoting:I've never worked with Python, but a young developer I mentored a few years back swears by it and makes a good living with it.


You should try it. It's wonderful. I started to learn it for gnome-hearts and I did some other playthings with it (like my jukebox). It took me about two days to learn (coming from a PHP, C/C++ background). What I like especially is how natural the OO part is (as opposed to Java for example) and how easy you can write relatively complex code in only a few lines. Sorta like Perl but you can still read it after 6 months. It's the power of Perl combined with the ease of PHP. It's only downsides would be speed and no true threading (but I imagine the latter will be solved some day).
bigg

Mar 05, 2007
2:03 PM EDT
Sander:

If anything, you are underselling the advantages of Python. At least for what I do, there's a Python solution for almost everything, and Python is the only scripting language for which that is true. If I want to write a GUI, there is a connection to almost any GUI toolkit available. If I want to do statistical work, there is RPy, that lets me run arbitrary R code *with no changes*. If I'm doing something numerically intensive, I can run arbitrary Fortran 77/90/95 code with almost no changes. Connecting with C/C++ code is a little more challenging, but not too bad.

It's not that you can't do these things with other languages (oftentimes you can) but typically it's not as easy to write or read the code. I have noticed that things are usually done differently when it comes to Python. It is a scripting language for dummies, which is why it is so good for me. It is easy to write non-trivial applications in a matter of hours - there is almost no learning curve if you have a programming background.
Sander_Marechal

Mar 05, 2007
2:10 PM EDT
IIRC Most of that is thanks to a Python conversion module. It can read a C API and output a Python API which makes anything available in C also automagically available in Python. Similar parsers exist to convert API's in other languages to Python. Most API's need a bit of cleanup afterwards (and some libraries are far better served with a purpose-build Python API) but it means that there are huge amounts of libraries available for Python.
tuxtom

Mar 05, 2007
4:20 PM EDT
I know a lot of GUI apps use Python...for web development you don't hear about it as much (although it is readily available on even the cheapest of shared hosts). I have to admit that I haven't investigated the language, even though I have several Python ebooks. Time is the big limiting factor. I used to write a lot more Perl for server-side utilities and ETL stuff, in addition to Java development. Then I took some time off to sail, returning to do some easy PHP, some Linux Sysadmin and Managerial stuff. Now I am working on an embedded project with Linux/Java/C. Who has time to learn a new language when they are busy re-learning the old ones? Ruby and Python are on my list. I always wanted to be a better Perl and C programmer but the projects I have been involved with over the years led me in other directions. It's hard to tell what the next big thing will be. "D"???? I suppose the best thing is to do what you love. In that respect, I Love Linux and as long as I'm working with it in one way or another I don't mind what languages I use. I get bored with development projects, but I never get bored using Linux at work or at home.

dcparris

Mar 05, 2007
5:16 PM EDT
I'm a lousy programmer, but I do enjoy tinkering with Python. I haven't done so since I came to LXer. I may give programming another shot at some point. I was trying to tackle too big a task with too little experience. That was frustrating, but I didn't have the patience to spend 3 years gaining programming experience with simple constructs. As always, the shortcut turned out to be the longcut. :-( Oh well.

What I have enjoyed about Python is that it is not specifically a web programming language, like PHP, but offers the flexibility to do local and networked tasks, CLI and/or GUI and it _is_ fairly simple, as far as learning a language goes - even for me. I still don't get the OO stuff, but that's because I haven't really grasped the basics of programming, since I've never kept at it long enough to see the various principles used in different ways. For example, I barely understand how to construct FOR and WHILE loops, and then try to go and define and instantiate a class to go into a database app.

Again, I may get back into it some day.
bigg

Mar 05, 2007
5:49 PM EDT
> I still don't get the OO stuff, but that's because I haven't really grasped the basics of programming

In my experience, very few programmers have a solid understanding of OOP. That's the way it should be, because "true" OOP is often not necessary for what the average programmer does. Don't get me wrong, it has its place, but it is way overdone on small projects. OOP is also why I hate Java as an introductory programming language. I've seen colleges offer intro to programming courses with Java. Good way to make people hate turning on the computer.

What I like about Python is that you can do a lot without OOP, but it can really make your life easier if you have a use for it.
tuxtom

Mar 05, 2007
11:40 PM EDT
I agree that procedural programming is the way to start...and using pseudocode at that!!! I think Java is an ideal place to grasp OOP once one is familiar with basic programming constructs. I was looking through the undergrad catalog for UCSD the other day and, sure enough, Java is used for introductory programming. I've met some very bright people who think Java is hard...maybe they were force-fed too much too soon. For me what is hard about it is my ability to tolerate the vast expanse of its API's without turning to something more efficient to solve the problem at hand. In that respect something like Python or Ruby looks very attractive. OOP in PHP is a facade...and I'm not talking about the pattern.

My academic intro to OOP was C++ after having some C experience and dabbling with Perl (which, as expected, has an obscure yet powerful way of doing OOP). I didn't really "think" in OOP until I started working in a Java shop and was introduced to patterns (Gang of Four) and UML by the senior engineers I was working with. Learning the code-base of a large project where you actually see the benefit of things like interfaces and polymorphism was invaluable. It's not the same in a classroom or doing small stuff on your own. I wouldn't say that OOP is a senior-level endeavor, but it is certainly not an introductory way to introduce beginning programming (call me old fashioned but I think everyone should learn some C for a foundation). Once you get it, though, you will naturally start to think through problems in an OO way. You can go overboard, for sure, but it still a lot more elegant and efficient than plowing your way through a big bowl of procedural spaghetti.

Posting in this forum is limited to members of the group: [ForumMods, SITEADMINS, MEMBERS.]

Becoming a member of LXer is easy and free. Join Us!