JBoss Founder Interview
peterdaly writes "The JBoss website has an interview with Marc Fleury, the JBoss founder regarding his vision. In case you have been living under a rock, JBoss is an Open Source Java Application Server (J2EE) which has been picking up tons of steam recently, especially with the recent introduction of features like clustering. Competing products from companies like IBM (WebSphere) and BEA (WebLogic) go for tens of thousands of dollars, which is interesting since JBoss is starting to have features the big boys don't. JBoss had 72,000 downloads in October. This is a project to watch."
I'm not really following JAVA as I'm more interested in "traditional" programming languages - but this sounds interesting? What's a Java application server? And it has clustering? So it's some kind of physical server computer running Java apps?
"..picking up steam"
..Yeah It is also a real boost for the Open Source movemnet. This project has been brewing and is sure to mug the competition.
heheh
How does this compare with Apache's Tomcat (Jakarta) project?
This is not just a project to watch... When 3.0 is release, all other Java Middleware will be worthless. It is more than a project to watch, but one to support, use, and contribute to.
I think this is a great project. We use Websphere where I work, and that product is cool to work with. The bigest problem is the price. I just hope they can get the program to be as good/BETTER then the expensive ones.
"Things like Dynamic proxies with compilation-less deployment have made us the darling of serious development shops"
Already showing it does stuff Websphere can not. How SWEET!!
CS majors, we are the geeks that run it all. Without us things die.
An apache integration is important for us, however, since apache is our frontline proxy. Anyone know if JBoss has an apache module yet?
I have heard a number of negative things about JBoss's performance under heavy loads. Anyone with experience using it care to comment? It seems like the clustering would really help such situations, and I am excited to see it advancing as well as it is. ..
I forget...are we at war with Eurasia or East Asia?
...JBoss article.... must... plug... Jakarta Project.
Jakarta contains whole bunches of open source tools that work great for Java Projects (I'm using struts and ant on my current project).
They all work extremely well (and simple to install) with JBoss.
I don't know the level of people using JBoss, though. The top two app servers are WebSphere and Weblogic. They take 50% of the market. The next is iPlanet (netscape), then I think its JBoss. So, even though its the cheapest (free), doesn't mean its got the market.
It'll be tough to crack WebSphere & WebLogic.
What JBoss needs is a certification (with levels) for developers to obtain.
If I go to a client and say "I have a level 3 WebLogic certification, a level 2 WebSphere certification, and know JBoss", what are they gonna pick?
Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
Jboss web site
Let's face it - JBoss appeals to us Slashdotters because
(a) It's open source
(b) It has a whole heap of fantastic development features.
What I didn't see an emphasis on is running on a daily basis in production. Sure, I think that JBoss is fantastic for development, and most of the leading edge features are great for developers, but what about running a mission critical production system? What benefits does it provide in that arena, given that if I have Weblogic or WebSphere, and it breaks on my 24x7 website, I can scream at the respective vendors?
Develop with JBoss, deploy with WebSphere/Weblogic. Anyone enlighten me to benefits of JBOSS in production over a commercial offering?
Gollo.
was working at SUN on Java since the early days, mostly as an evangelist in the beginning.
After reading his responses, you can really tell he had a job as an evangelist. For you Quake/id fans out there, it's like Paul Steed started coding in Java!
"And like that
Damn.
I guess I must live under a rock. I thought JBoss was some "urban" clothing conglomerate, formed when J. Crew and Hugo Boss merged to oust Tommy in the Phat Ghetto Style Stankfinga razmadaza hootchie combo platta market.
Y'knowumsay'n? Yomesain?
At my office we use JBoss as part of an entirely Open Source and free platform stack:
OS: Linux
Web Server: Apache
Servlet engine: Tomcat
EJB Container: JBoss
DB: PostgresQL
And a great set of middle level libraries such as Struts for form processing, a slew of other jakarta classes, tinySQL fro xBase integration, JUnit, and HttpUnit.
I came from a company that did oracle/ATG integrations. I can honsetly say as a developer, I have everything I need that I used on thos platforms.Plust I like that fact that it is a little closer to the J2EE standard than ATG.
Open Source Identity Management: FreeIPA.org
A java apllication server is a software package that runs the logic of many high end java applications. An application server is where most of the hard work of an application is done. On top of application servers, you may see things like Java Applets, Java Applications, or JSP/Servet containers (ala Tomcat) which act as the interface between the application and the user.
Usually on a Java Application Server, programs are design as small server side components, which perform independently of each other. By typing the components together, useful applications are born. For instance in e-commerce, a JSP interface may recieve a credit card purchase. It will run your credit card through a credit card component on the JAS, ask a warehouse component to mark the order for picking, notify the shipping component a package will be coming and where to ship the order number to, notify marketing a sale has been made, and tell the purchasing module to order parts which will be needed to replace the unit in inventory.
All of these are seperate components which can be used in many different applications. By creating a system like this, business login never has to exist in more than one place, which reduces programming time, stabibility, and makes the system as a whole more flexible.
Hope that made sense.
-Pete
Soccer Goal Plans
I've been using JBoss for a little over a year, and my experience has been very good. It's fast, reliable, and seems to keep quite up-to-date with developing standards.
This kind of project is exactly what the free software world needs - usable, cutting-edge, and easily comparable with competing proprietary products.
This project has cemented my opinion on Java on Linux as a server platform, and when combined with PostgreSQL, it forms a complete and surprisingly robust setup.
I wish the JBoss team the best of luck and fully intend to keep using and recommending their software.
Now that J2EE has been briefly explained, and I've stated my position (useful services, with some warts and all, designed to the lowest common denominator, and unfortunately sometimes too easy to build systems that really perform like slugs) I will give JBoss some props for really driving forward the implementations of the standard in several ways. Adoption of JMX is great, JMX is very useful for building custom manageable components that don't fit into the standard J2EE framework (i.e. they need to be stateful and not session coupled so they can't be implemented as reasonably performing, compliant EJBs). Also JBoss provided the first reasonably performing EJB implementation I have seen. Far faster than most of the commercial implementations when it came out for the common case scenarios (the commercial implementations may have improved since, I don't really know). My company moved to JBoss from Weblogic as we discovered we couldn't afford enough Weblogic licenses for every developer to have his own test box. And that the nature of our system makes it really hard to test otherwise (note: this is partially the fault of our system's architectural stupidities, but let's put that aside for the moment). We have generally had great luck with JBoss, and found the JBoss community to be very, very helpful with problems when they sprung up (compared to Weblogic 5.1 where I got some very frustrated engineers on my team stuck with the job of calling Weblogic support bitching at them about weird problems with spontaneous breaking of the EJB standard - anyone who used it knows that SP6, SP7 and SP8 were all released in short succession around the time I'm speaking of).
The moral of all this is that the JBoss team has done a fabulous job at providing a great, useful product that has saved my company thousands of dollars and many hundreds of man-hours of developer time. While the J2EE spec is, err, deficient in certain ways, for a lot of enterprise software projects it's good enough for the task at hand. And JBoss, with full clustering support coming up now, should be good enough for most if not all of these jobs. If you need a real distributed application with high volume transaction processing, you might need to look at other kinds of systems that give you more access to lower level capabilities (think: Weblogic Enterprise, Tuxedo, etc.). Or roll your own.
Another server that is used in the Java arena is the Orion Server. It's very nice and I enjoy working with it on a daily basis, but it's not Open Source which a lot of people consider to be a downside. It's free for development platform and non-profits, but for production it's $1500 USD per host. Cheaper than BEA, but But a lot more expensive than Jboss or TomCat (the Apache JAS).
Hilary Rosen's speech was about her love of money and her desire to roll around naked in a pile of money.
The number of downloads means little here. I bet that many of those downloads were people looking to evaluate the various J2EE app servers. I know from experience that the vendors like BEA and Oracle do make free trial licenses available for people in the process of picking their app server.
The interview points to a survey among the sales of various J2EE app servers, and correctly points out that JBoss has no sales to contribute, making the survey be the data among commercial app servers.
clearly the best way to find the JBoss market share is to survey those who use J2EE, not just the companies that make them.
The One Rule Of Chess You'll Ever Need: Don't play someone who carries a kit in their bookbag.
exactly. nobody wants to mix platforms on the server side. companies will usually pick one architecture and stick with it (which makes more sense, less types of hardware to support). and besides, most modern programming languages are portable anyway. java's big deal is that you don't have to recompile to change platforms, but that only takes like 15 minutes anyway! the bottom line is, if you write your code correctly, portability shouldn't be an issue with most modern languages.
Actually JBOSS includes Tomcat within it's framework for serving up Java Servlets, JSP's, etc. Tomcat is purely a server for Web Applications where as JBOSS does EJB's, and a whole slew of other things.
This sig has been temporarily disconnected or is no longer in service
from their web page:
JBOSS SUCCESS STORY OF THE MONTH! NEW
"Just through you'd like to know that the United States Department of Labor's Office of the Chief Financial Officer uses JBoss to process about $3.0M worth of financial transactions yearly in one application alone. There are several other legacy applications scheduled for migration. By using JBoss, we've saved the taxpayers about $100,000 in BEA Weblogic licensing fee and about $10,000 in annual support fees".
Michael R. Maraya, OCFO/OFD/DFAD
Soccer Goal Plans
Can anybody actually read more than a paragraph of that shit without their eyes glazing over?
;)
I can read scholarly papers about programming languages in all their greek letter glory, but this is just too much. It's all enterprise-this and acronym-that and just terrible to understand. Maybe I should have gone to business school?
but for simple web based apps, which are (or at least should be) relatively simple applications, you don't need a "real" programming language. perl gives you all the functionality you need.
i work for a company that chose to do it's web based ui in a "real" language (java). our developers got so caught in using all the whiz bang OOP features of java, that they didn't solve the simple problem that was put in front of them. java is great for certain apps, but for simple web/db apps it's overkill.
difference between JDk and SDK: Prior to Java 1.1 (inclusive) the developer kits were called "Java Developer Kit" (or JDK). From Java 1.2 on, it's been called the "Software Development Kit."
The SDK contains what you need to compile and run programs. The JRE (Java RunTime Environment) is just the run part of the SDK. The JRE comes with the JDK.
The concept of having source files match the class name within is required for classes that are 'public.' It's also good development practice to do it that way.
As for the download problem - check your browser settings. You might need javascript/cookies or something.
Dont worry too much about the over-acronyming and over-buzzwording of all the Java stuff out there. It's nearly impossible to keep it all straight. (for example, I dont bother with about 95% of the java stuff out there) But to learn what you need just takes the usual: practice and experience.
The One Rule Of Chess You'll Ever Need: Don't play someone who carries a kit in their bookbag.
Mixed platforms on the server side are the norm rather than the exception, in the market where JBoss is trying to position itself.
Consider that JBoss is (will be, in some respects) a J2EE-compliant system, in everything except name. The purpose of J2EE is to deploy in large-scale environments... where you potentially have PC/W2K, Solaris, IBM S390, and God knows what else already providing a business solution.
You will not get a contract to replace the business systems from top to bottom, so take the view that you'll integrate into them instead. Now you're talking multi-tier Facades and Interfaces in order to get these things talking to each other.
You'll want to design things so that there is as little interdependence on co-operating subsystems as possible. Read 'Design Patterns'. Have a serious *think* about XML. Look at the Java libraries and the J2EE designs. Understand.
Have you ever noticed that it "just seems easier" to do things in Java than C/C++/VB(spit!) when there's any degree of complexity ? (I'm not talking about a couple of days' hacking, I'm talking about a designed system). There's a good reason why Java works so well - it's been designed well from the bottom up.
J2EE (and hence JBoss) take that elegance to a higher level of abstraction, but what they're doing is to continue the excellent design principles of the class libraries.
A happy JBoss user.
Simon.
Physicists get Hadrons!
I disagree with you on virtually every front here: Java is far from perverse, and a lot of things you're criticising it for make sense if you think about them. Let's take it one point at a time:
No. The JRE (Java Runtime Environment) is for running Java applications only. The JSDK (Java Software Developers Kit), also known as the JDK or occasionally by the more generic term SDK, provides the same functionality but also the ability to compile Java code.
Let's not, unless we can give examples. Most Java variable names in Sun's own code are fairly self explanatory once you know the basic structure they're working in.
Actually, in that case the compilation error would be on the line where the error occurred, as with most error reporting in Java programs.
As for case sensitivity, it's pretty much required for a platform-independent system that's going to be running on Unix-like systems.
(If you want to be really frightened, be aware that Java source code is actually UTF rather than ASCII, so you could create a file where all variables are called 'bob', just in different character sets...)
++ Say to Elrond "Hello.".
Elrond says "No.". Elrond gives you some lunch.
You missed the most important layer, and I'm betting that that's because that layer actually isn't open source.
Are you running this on Kaffe? gcj? ORP? Kissme?
Didn't think so. (If you actually are, I'm dead impressed - please let me know how you managed it)
You're using Sun's J2SDK. Which isn't open source.
I'll be very happy when it really is possible to put together an open source J2EE stack. But that day isn't today, because the VM/classlib layer has no open source alternative that's up to running these enterprise-level apps.
If he really is planning on something called JBoss.net, I think he'll find that 1) people expect it to run MSFT .net code, and 2) MSFT will expres an unpleasant interest.
And just what are "socialist marginal characters"? Are they for or against "WebOS" monopolies?
And why is SUN in all caps? Is that to remind people that it was started from publicly-funded research (Stanford University Network )?
Java is the blue pill
Choose the red pill
Well, I expected to be modded down, but I am sincere, so I guess it depends on what, exactly, you mean by trolling. I do "hardly know Java" but hardly for lack of trying.
:-P )
.]
As to "swallow[ing] the whole thing at once." I did, in fact, expect to be able to get to "hello world" within the first day or two. Since I had gotten at least this far with several other languages I didn't think that this was unreasonable.
I am consciously biased against Java, but I am pretty sure that I'm not so sick that I burned hours of my life to prove to myself that I don't like it. I was trying to learn it for my own amusement, and would still like to.
Bruce's site (with the flash intro with the background that almost matches the background of the rest of the site) has, sadly, made my mental state worse. I hope that you, AC, aren't Bruce. (I suspect you aren't, since you can't spell subconsciously
[time passes . .
I'm back from the site, and I have to say that Bruce kicks ass. I downloaded the Java book (and the C++ books) and am looking forward to curling up with my laptop and checking them out.
-Peter
That said, the EJB component model is cool, and getting the Tomcat/JBoss bundle is a great way to get started with servlets/JSPs/EJBs.
To add 'icing on the cake', add the Apache SOAP servlet (or the newer Apache Axis servlet) and also get SOAP support for interop with other systems.
- Mark
PS. I live in the mountains in Northern Arizona, and it is snowing. Cool :-)
This isn't a big deal, but I've been very wary of J2EE app servers. I've been working with server-side Java for about 4 years now, and previously with EOF (Nextstep/Webobjects). EJB is incredibly broken compared to EOF/WebObjects. But my online educational system Oomind is running on Tomcat right now, and needs a more complete platform. So we are moving. And after some careful analysis and real world experience, we're choosing JBoss. Frankly, it being open-source is a very significant factor. Kudos to JBoss and its developers!
Helping with organizational effectiveness is our job.
What you are talking about is that Weblogic and Websphere together are 50% of app servers _sales_. Not installations. That's why JBoss didn't even appear in these statistics.
JBoss is free, and has the same problem of linux - you just can't know how many installations are out there, only guess based on the number of downloads. If you look this, Jboss has by _far_ hundreds of times more installations than Weblogic or Websphere - in a month.
And, about the certification areas: they have complete certification courses, that are said to be of *very* high level. That being said by some java certified architects.
2 years ago I had to do an evaluation of WebLogic, Oracle's JServer, and NAS/IPlanet (i.e. the last NAS version and the first IPlanet version.) What was annoying at that time was that there wasn't really a standard deployment method (I'm not even sure if there was an 'ear' spec.)
What I'm wondering is; has it all settled down now? How hard would it be to take EJB's developed and deployed for WebLogic or WebSphere, and to move them into a JBoss environment? Obviously if you use specific features of the app servers that's an open ended question - let's assume we're talking about sticking to the J2EE spec though, only using standard J2EE API's?
I'm hoping the answer's going to be very easy. I'm currently looking for work, and people keep asking if I've got WebSphere experience. I keep replying that it's just another Application Server... I can't imagine there being any surprises. Am I wrong? There don't seem to be many web design roles asking for IIS/Apache differentiated experience, so why should an EJB job differentiate between Application Servers?
In case you have been living under a rock, JBoss is an Open Source Java Application Server (J2EE)
That's right. Don't you just love it when people think the entire universe revolves around what they are doing.
But both you and I will be flaimed for being so ignorant. Even though it's pretty busy under this rock.
It sounds like your project management team wasn't very good, then.
I understand this, now. But (at the time) there was no good way to figure this out form Sun's Java site. Now there are actually some pretty good walk-throughs.
Let's not, unless we can give examples.
Well, I don't have any Java code handy, but the stuff my wife has had to use for her Java classes (as in school) has been pretty bad. Weird capitalization, way to long without being particularly descriptive, etc.
I think we can at least agree that typical method and variable names in typical Java programs are longer (and therefore more subject to typos) than most programs. It is my opinion that in the general case there is little (if any) useful information embedded in this baggage.
Actually, here is an example from "The Practice of Programming" (Kernighan & Pike):
This quote looks pretty bad. I have the trade paperback version, and this appears on page 4.
Anyway, to my eye, the first looks distincly "Javaish" whereas the second looks like C++. I'm not sure, but I think that this code is valid in either language. That's my point about perverse, typo prone method and variable names.
I fully expect case sensitivity. I don't, however, expect 20+ character labels with "funny" caps.
Actually, in that case the compilation error would be on the line where the error occurred, as with most error reporting in Java programs.
Well, of course this isn't true. It isn't true for any language. Any compiler gives an error where the compilation error is encountered. So, if you forget to uncomment a declaration you get the error where the variable is used.
OTOH, I get the sense (after debuging my own bad syntax on C++ and Perl) that "javac" (ask me how long it took me to figure that out) encounters errors in places less inutitive, and further from the mistake than others. Again, this is a sense, I don't have examples handy.
Anyway, this is pretty far off of my core complaint, which is that Java seems to be more about buzwords and barriers to entry than about technology.
I do have one more question: is there an assembler for the JVM?
Okay, one more: is there some documentation for the JVM in terms of things like registers, service calls, etc.
-Peter
A couple of suggestions:
Get a GUI IDE, I'd suggest JBuilder, it does syntax checking on the fly while you type. I never had a syntax error at compilation after I got it. You can download the personal edition from Borland for free. It's written in Java, so it will run happily on Linux
Download the Java tutorial from javasoft.com. It's the best tutorial available. It's also available in print, however the printed edition tends to lag a bit.
Download the full SDK documentation and keep it for reference. You're going to need it.
The entry barrier is low in my opinion, at least for somebody who's familiar with C++. Once you start to grok it, you'll like it.
OH, and there are several documents describing the JVM (which if I remember correctly is a Stack machine, so it doesn;t have registers). Just browse javasoft.com
If con is the opposite of pro, is Congress the opposite of progress?
One of the huge drawbacks of the current JBoss package is the lack of the ability to distribute your beans across multiple phisical hosts. That makes JBoss applicable to only small production environments. I wonder if this is something that 3.0 is planning to address... If not then JBoss will not be able to compete in the same space as WebSphere and WebLogic.
Your pizza just the way you ought to have it.
Care to elucidate me? =)
That's the general style, yes: meaningful method and variable names. If you prefer to take other approaches in your own code then there's nothing stopping you from doing so.
You're confusing 'funny' caps with a well-defined style for capitalisation. Java variable names, if you're following Sun's style guide, begin with a lower case letter, and new words are identified with a capital letter, an approach sometimes referred to as IniCaps. Method names use the same style, class names the same but with an initial capital letter. Once you're used to that style, it makes perfect sense, and you're a lot less likely to drop caps. It's preferable to some of the overly abbreviated variable names you get in some C code as far as I'm concerned - particularly for maintenance purposes. I know what the variable userCount contains, or can make a good guess. I have no idea what nusr means.
It's all down to style, of course. There's no reason a C program couldn't be the one with a variable userCount and a Java program the one with nusr, and I've seen both.
It's true of all languages that until you know the jargon, you will find it confusing. That's the case with Java to the same extent as other languages.
A somewhat unhelpful answer here: yes, but I don't know where you'd go to find it.
I guess this is what you want.
++ Say to Elrond "Hello.".
Elrond says "No.". Elrond gives you some lunch.
Sadly, WebSphere is the one area where I have no experience. But I have used iPlanet (up to 6.1) and WebLogic 6 for a good deal of time, migrating an app from iPlanet to WebLogic...
Basically, the code ports really well and with few modifications. But where the differences come in are development environments and deployments, which would probably be different from one company to another anyway even using the same app server.
Another area where you can find differences is in frameworks used - what people actually do on top of the EJB standard can vary quite a bit while still being compliant. Then you have add on frameworks for front end, things like Struts, which aren't really part of the spec but are widely used.
What I would do in an interview situation is describe how the websphere deployemnt you worked with was set up - what you used to develop, how you deployed, etc. Then ask them questions about thier deployment and see how it compares.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
The IDE advice sounds like an admission of guilt to me. I'm not saying that a piece of software that watches you for mistakes in inherently bad, but a language that makes it that important is.
Wow, no registers. I'm not saying you are wrong, but I can't imagine how this can be . . . how do you keep track of the top of the stack!
[read, read, read]
Oh, there is a "pc" register which seems to be equivalent to IP on intel. I can't find anything on a stack pointer register. Weird.
-Peter
(From the last paragraph of question 3.)
Microsoft would be the exception that proves the rule?
I tried to resist saying that, really I did...
This is my sig. There are many like it but this one is... Oops. Frank, I've got your sig again! Where's mine?
I hope somebody can answer this. I am wondering how the application-level clustering (i.e. what JBoss, Weblogic, et al have) compares to the IP-level clustering (i.e. something like the Linux virtual server, or the embedded hardware equivalent from Cisco et al). There would be less overhead at the IP level, so, it seems the load balancing would be more efficient. Also, by doing load balancing at this level you can cluster just about any application -- be it a web/ftp/file or, as in this case, application server. What's the advantage of having clustering built in to the app server? How about Apache mod_backhand?
___
If you think big enough, you'll never have to do it.
You're probably thinking of PERL. As nearly as I can tell, PERL is a dumbed down version of Perl (see the difference?) used for writing buggy, insecure message boards and spam gateways posing as mailer forms. It has as much in common with Perl as JavaScript does Java, circa 1995.
how to invest, a novice's guide
Uhh... Hrmm, "hello world" in Java..
// alternately, you can print to console
// System.out.println("Hello World");
// either of which makes a lot more sense than
// C++'s "cout
import javax.swing.*;
public class HWorld
{
public static void main(String args[])
{
JOptionPane.showMessageDialog(null, "Hello World");
my sig's at the bottom of the page.
Thanks for that link. I found that via the general link provided by the other guy that replied.
I find the name "IniCaps" to describe this laugh out loud funny (since it doesn't comply with itself).
As to variable names, you seem to have ignored two key points in my post. First, in my opinion, the longer names don't actually carry additional info in practice. If you are just saying that in your experience they do, well, that's fine then.
The other is that, as illustrated by the example, the full name (I'm sure there is some cool computer science name for this) can be made to look very good, and it doesn't matter if the name looks vague out of context. This isn't my point, it is K&P's point.
It's true of all languages that until you know the jargon, you will find it confusing. That's the case with Java to the same extent as other languages.
You must be trying to miss my point here. Yes, of course every technical field has its jargon. And every language its own set of jargon. My point is that Java (I guess really Sun) goes way, way beyond what is normal.
One prime example: EJB. You seem to have a personal affinity for meaningful labels. Let's expand EJB. AFAIK it is Enterprise Java Beans. To me that is a buzzword followed by a (maybe) cute but meaningless bit of wordplay. NO INFORMATION. I heard a rumor this is an API. IMO this is going as far as to be deliberately evasive in naming a technology.
-Peter
please disregard... the left-shift operator got eaten by the HTML parser, and I lost the 2nd half of the post.. +)
See... Java's simpler than HTML. +)
my sig's at the bottom of the page.
Look at it from a developers view point. If I know Java and use Jboss I can develop server solutions for Both Windows and *nix platforms. It s pretty easy using Jboss or similiar app servers. Even if it was true that enterprise organizations use all the same hardware/platforms (laugh), what about the outside developers that create apps for them? It makes more sense (read it makes more money) to develop in Java in these scenarios.
Well, you would probably not want to replace a PHP/Apache/MySQL deployment with a full-blown J2EE application server. The model you describe is database connectivity and business logic being handled by the web tier. This would map to a Apache/Tomcat using JDBC (Java database connectivity) embedded in servlets or JSPs. While this technically IS an application server a more practical design is using Apache\Tomcat to handle web requests from a browser, and then in turn access an application server with the appropriate method call or database query. This removes logic and database calls from what is essentially a publishing platform (PHP|Tomcat+Apache) and isolates these functions in a single location. The main benefit is that you can add new types of clients (a standalone application of some sort for instance) without have to recode logic or database querys that would optherwise be embedded in JSPs, servlets, or PHP.
The gist of it is that you get a cleaner separation between logic, data, and presentation.
There are some better post at http://theserverside.com ... a few interesting comments from Rickard Oberg
http://www.theserverside.com/home/thread.jsp?threa d_id=10469
It's funny how often I've come across C++ programmers who said things like this before they used Java.
l
After using java for a month or so, it's really fun to hear them piss and moan about having to go back to C/C++
Generally, the first thing that starts to convince the hardcore C/C++ hackers that java isn't just a glorified C++ Clone is when they start to use the Reflection package.
The libraries can be a bit daunting at first, I can understand why you were overwhelmed, But if you start here:
http://java.sun.com/j2se/1.3/docs/api/index.htm
and study one package at a time (in order of interest) it really isn't bad. It's just that most of those things in C/C++ that you'd have to buy or create externally are already built into Java's default class library.
This is actually a huge advantage, by the way, since all the packages are integrated with each other and operate consistantly.
I used C/C++ for quite a few years before moving to Java, and after the first few weeks of Java I never looked back. I'm working for an all-java company now, and couldn't imagine moving back to C++ (I'd use C if it were necessary).
Now, by the way. You are evaluating how "Java Programmers" use names by something from your wife's class. Do you really think this is fair? Our company policy is the shortest descriptive name you can come up with... period.
Also, javac has become AMAZINGLY adept at telling you exactally where an error is, and is right so often that when it isn't I'm completely shocked. In fact, the only time I can remember that this happened, I was using one of the open-source java compilers, not javac.
So, your basic complaint seems to be "I don't know Java, I'm too dumb to figure out Java, my old lady took some Java in school, and she's too dumb to figure it out, too, so it must be jargon."
Here's the deal, scooter. EJB is a real technology, with it's own specification. The simple fact that you "cant get your head around it" speaks far more about you than it does about Java.
So you go on and continue to whine about your misconceptions. The rest of us are going to continue to write beans, run the cool containers, and deploy them.
Love!
FatHog
P.S. Since you seem to blame your tools for your own ineptitude, here is a clue for you.
Name this language:
$FatHogHitMeOverTheHeadWithTheStupidStick = 1;
%IShouldGoBackToAccountingWhereIBelong = qw( Peter => 1, FatHog => 0);
bless my $soul, 'Silly';
--
You sure got a purty mouth...
I work at one of the largest vendors of software for banks, and diversity of server platforms is a fact of life for our clients. Many banks are quite happy to continue using applications that were written 20 years ago, in RPG, for the IBM AS/400 platform. And it makes sense; those applications work quite well, and they represent millions of lines of code, which can't be thrown away just because RPG isn't a modern language.
Many of those same banks also have applications running on all sorts of Unix systems. And of course, Windows is widely used for front-office applications. Oh, and they all use different RDBMSs, too.
If you think it's easy to write, say, C++ applications that are portable across all those environments, I suspect that you've never really tried.
We've written our in-house middleware in Java; we develop on Windows desktop machines (alas!), and the code works out of the box on AS/400, Solaris and Linux, as well as with every RDBMS we've come across. It's an easy sell to our customers, many of whom have strict requirements about which operating systems they're willing to use for which projects. And we haven't spent any time porting our software.
RMI/IIOP is in the works... not sure if it will make it into 3.0 but shouldn't be too far off.
While I am a big fan of JBoss (ever since EJBoss), it does have a long way to go to gain market share in the industry. People who make the decisions would rather put their neck on the line for big companies like BEA or IBM, be it right or wrong. Does this guy really think that BEA and IBM aren't working on their next versions as well? It's a tough market, I just hope JBoss doesn't get too confident.
Actually, the complaint about EJB had nothing to do with the technology. I can't criticize it, because I don't know anything about it. Except that it has a non-descriptive name. If it has to do with "containers" why not call it JavaCan (or would that be javaCan?) or numberTenCan (NTC, sounds nice) or whatever?
.) So, maybe I'm dumber than dirt, but that doesn't appear to be the only issue involved.
And my complaint isn't that I am too dumb to learn Java, it is that I seem to be having a significantly higher level of difficulty getting started with Java than I have with other languages in the past. (Of course, I grouse almost as loudly about Perl being too easy in some ways . .
Actually, the things I have learned in the course of this thread lead me to believe that the "problem" (maybe it is aesthetic, maybe it is just me, whatever) is due to over-marketing and over-committeizing. IOW, I'm not sure any sane person would arrive at "IniCaps" but a committee of sane people might end up converging on it. No language designer would come up with Enterprise Java Beans, but marketing department sure would. I guess the fact that it doesn't have a "father" (like Wall or K&R) shows.
Maybe we mean different things by jargon? Your message could be read as you are under the impression that since I call EJB "jargon" I don't think it is a real technology. Is that what you meant? Anything technical has jargon. It has to. I'm just saying that I find Java (in the larger sense of Java) to be jargonistic to the extreme, and for its own sake.
-Peter
PS: It is, of course, the only slightly less perverse language, Perl.
JavaBeans is the component model for Java. Java - coffee. Beans - coffee beans. Isn't it cute?
Enterprise JavaBeans is the *enterprise* component model for Java.
There, that was fairly painless, yes?
As for your comments on IniCaps not conforming to itself, it's used to describe the process of capitalising new words (short for initial capitals) - both the variable and class name conventions can be described as IniCaps.
++ Say to Elrond "Hello.".
Elrond says "No.". Elrond gives you some lunch.
Yeah, except that the problem was that I couldn't figure out what PACKAGE I needed. (JDK, SDK, JRE, LMNOP, etc) I mean, I'm pretty competent, but this was kept like some state secret.
None of the human beings that I knew at the time seemed to get this either, and all the "cool guy" Java guys and docs just assume you know this.
As I said before, there are some pretty useful walkthroughs for first-timers now.
But since you brought up how much more sense System.out.println() makes vs. cout . . .
Since Java is all logical and stuff, I can get input by just doing System.in.getln() right?
Wah-wah-wah-waaaaah*
Anyway, how do you do the equivalent of "cin >> some_string;" in Java?
-Peter
* the sound on "Let's Make a Deal" when someone gets the donkey
Try JBoss+Jetty in place of JBoss+Tomcat running through Apache. Unless your application is a very simple one, you'll get a 2-4x increase in performance under load.
Tomcat is nice, in theory, but its dog slow.
something like: String nameOfStupidPerson = null; try { BufferedReader br = new BufferedReader(System.in); nameOfStupidPerson = br.readLine(); } catch (IOException ioe) { System.err.println("A system problem: " + ioe.getMessage()); System.exit(1); } System.out.println(nameOfStupidPerson + " is a dumb ass"); Perfectly safe and a lot clearer than the c++ version... (and for heavens sake: don't forget checking forexceptions - or else your customers will kill you)
And for heavens sake: don't forget to preview - or else the trolls will kill you.
It looks really nice when I do "view source" though.
Anyway, thanks!
So the key here is "new BufferedReader". Am I correct in the belief that there is no "free br" allowed/needed?
-Peter
You are clearly illustrating my point.
Yes, java beans is cute, and I get it, but it doesn't tell me squat about the technology.
What does enterprise mean? I'm keeping a running list:
Supports files >2gb
Supports RAM >4gb
Supports fibre channel
We charge you really, really a lot more because you are a big company and we think you can afford it.
Supports LDAP
Has even more proprietary extensions than the "workgroup" version.
I'm not sure if any of these fit.
I think that the IniCaps thing might be even funnier now. Maybe it should be iniCapsCptIniWrd (Initial Capitals exCept Initial Word)!
Okay, I'm just being silly now.
-Peter
haha - well they just announced JBuilder 6 :)
... Forte.
Try www.netbeans.org for an open source java IDE... its sponsored by Sun, and forms the base code for Sun's own commercial offering
Awesome.
Bush's education improvements were
Wow, if anyone tells me that open source is better because it doesn't have the hype of commercial products, I'm going to hand him a copy of that article. That should clear up that little delusion REAL fast.
...the rest of the industry is still scratching their heads to figure out what this really means. Some follow suit, (BEA/IBM), others just give up. But we keep on trail blazing tech-wise...we are going orbital..."
"features that strike fear in the hearts of our competitors...have made us the darling of serious development shops.
If Microsoft talked like that, you guys would roast 'em.
"Odds are the product with the greatest market penetration will always have the greatest stability...."
Hoo, Mama!
"Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
That was about the most annoying thing I've read since the last time I was foolish enough to peruse a Microsoft press release.
Perhaps someone should remind Mr. Fleury that people in the "open source" world are interested in the technical details and not interested in hearing about popularity, success or prospects for ruling the world. We can make the latter assessments on our own, thanks very much.
We use all of these features on our site.
Some questions from a guy who has played around with Jakarta a lot, but never quite used it at work:
/. when people say MySQL cannot handle loads -- would any of you know a similar highly-trafficked, prominent site that runs Jakarta software?
Are there people who are using Jakarta/Tomcat for high-volume sites? I use Tomcat for development all the time (primarily because I can use it on some really low end hardware). But in production use, it's always been a different story.
I mean, I can point to
For that matter, how 'bout the same question applied to JBoss? or are they used quietly in departmental intranets, anonymous because they didn't require a big-ticket purchase order to acquire?
I want to know if you consider Jakarta/JBoss ready from 'prime-time' in the same way (say) Websphere is.
In Norway, IBM is by far the most arrogant and useless company you can buy software from. My company have used Websphere and DB2, and the help from IBM (after hours of phone-screaming) was worth next to nothing.
We used Websphere 2.x and 3.0, IIRC, and they were CRAP, i know DB2 is a decent database, but we were not able to configure it to run any faster than mySQL, thanks to lousy support from IBM.
In the end, we dropped Websphere for Weblogic, no great support from BEA either, but at least the appserver ran 24x7 w/o great problems...
"I find that the more I learn about C++, the more elegant design patterns I can come up with. "
;-) C++ does require more though IMHO though, since it provides you with quite a bit more powerful tools (templates, operator overloading, multiple inheritance), which are both a blessing and a curse, depending on what day it is ;-)and don't provide you with 'java's little helper' (Garbage collection, and, eh, other stuff - i dunno about)
yes, However, it's very easy to blow your foot off (or your leg off!) with C++. One has to be careful when using it, having said that, that doesn't mean you can just sit down and hack away in java and come up with a beautifully designed system!
if (!signature) { throw std::runtime_error("No sig!"); }
Uhh, no you don't. You'd find out this yourself if you ever actually downloaded the product. It's one download, two if you want to have both servlet engines prepackaged.
Don't get me wrong, you don't HAVE to use an IDE. The command line compiler is quite good at reporting errors correctly, better than gcc IMHO. If you're a hardcore command line fan, then you can live happily with it. But personally I like to spend my time hunting bugs in logic not syntax errors, that's why I prefer JBuilder.
If con is the opposite of pro, is Congress the opposite of progress?
I'd like you to take a step back and read that. You know nothing about it. How can you tell me the name is non descriptive?
If it has to do with "containers" why not call it JavaCan
Because if you knew anything (and we've already established that you don't), you would know that EJB is a pretty descriptive name. It has three terms, "Enterprise," which means something in the context of systems, "Java," which also means something, and "Beans" which in the context of Java, also means something quite specific.
I guess the fact that it doesn't have a "father" (like Wall or K&R) shows.
Well, scoot, James Gosling and Bill Joy are pretty accomplished engineers. I'm sure they would be quite distraught that a little high school piker like you thinks they're a "committe."
I'm just saying that I find Java (in the larger sense of Java) to be jargonistic to the extreme, and for its own sake.
So long as you continue to wallow in your own ignorance, this isn't going to change. You have already acknowledged you know nothing of the technology. You have already acknowledged that you don't understand language style issues. Why do you continue to run on at the lip?
--
You sure got a purty mouth...
ahh, that was what I was saying - "do not forget handling exceptions 'and closing io-streams ;)"
hehe
here you go: ...
...
} catch (IOException ioe) {
... ...}
BufferedReader br =
try {
} finally {
try {
br.close();
catch(IOException ioe) {
}
You mean Java doesn't magically close the stream when it goes out of scope?
(I say this not as a lazy programmer, but as someone who feels that Java breeds lazy programmers.)
-Peter