yourfanat wrote: I am using another tool for Oracle developers - dbForge Studio for Oracle. This IDE has lots of usefull features, among them: oracle designer, code competion and formatter, query builder, debugger, profiler, erxport/import, reports and many others. The latest version supports Oracle 12C. More information here.
In many cases, the end of the year gives you time to step back and take stock of the last 12 months. This is when many of us take a hard look at what worked and what did not, complete performance reviews, and formulate plans for the coming year. For me, it is all of those things plus a time when I u...
Paul Graham's Great Hackers essay has really touched a lot of people's nerves. The wires are choked with people giving their point of view.
Yet again, though, I have had to stop and think - what is it about Java that makes people brand it as the most un-cool language on earth? I have had friends look at me like I was a poor sod for "having to" develop in Java. So, let me list all the reasons I can think why people consider Java un-cool.
Java has considerably fewer surprises and prefers not to add complexity to the language for rarely used features thereby resulting in a language where you cannot really make your friends go ga-ga at amazingly brief programming constructs. You need to write something substantial [like Gosling's Huckster] for them be to impressed with your programming abilities and not your language knowledge. This is probably the biggest reason Java is un-cool. It's too easy (although programming or software development remains as tough as ever). Java was always touted as the language that the "average" IT programmer can use. It's such a language-for-the-masses that yet again, it fails the "geek" test. And if you use Java, so do you.
Java has been considered slow for ages. The earlier allegations (1995) were true. However, with the recent advancements in the JVMs from Sun and IBM, Java runs pretty close to C/C++. Check this benchmark. Contrary to this, there are other benchmarks that prove that Java is slower. All considered, it would be fair to say that Java cannot be considered "slow" anymore, yet its stuck with the label. How cool is to be the jock with the second fastest race-car in the block?
Swing disasters continue to give Java a bad name. Swing is a brilliant, although hard to learn, API. But the vast majority of Swing applications are so bad that they give Swing and therefore Java a bad name.
Java is a strongly typed language therefore you have to tell the compiler exactly what you intend to use. And if you make a mistake in the way you use it, the compiler has the guts to tell you that you were wrong. Too much chaperoning?
Java has a vast library that is available to all Java developers without any ambiguity. Thus, if you wrote yet another Map you would not be considered a data structures guru by Java programmers but a guy who hasn't heard of java.util.*.
Java did not have a good IDE that compared with MS Visual Studio. I think this one was true. I am not so sure it is any more with IntelliJ. The absence of good tools probably pushed away a lot of good programmers.
Java is popular. Anything that is popular has lost its elite status and therefore is not cool.
Java is an application programming platform. You cannot do cool things like device drivers and games, etc (until recently - but Java gaming is coming in a big way).
About Sachin Hejip Sachin Hejip, an architect with Sonic Software, is currently part of Sonic's ESB tooling intiative where he is leading a team of engineers develop Eclipse plug-ins to take Sonic ESB development to the next level. A recipient of Pramati's highest award for technical excellence, the Pramati Fellowship, he has been a core member of the Pramati engineering team where he led the Web Server intiative and has been a key member of the Pramati Studio R&D team. He has a keen interest in development tools and was the architect of the IDE's parser framework, which formed the base of his implementation of the code completion and Java/J2EE Refactoring tool set. He has designed and developed Pramati's paradigm of J2EE development called "Express Development" including the server-agnostic deployment framework.
I missed the "debunked" part. All I see is a list of why people think it is uncool and sense the underlying implication that if you still believe it''s uncool then you must be uncool.
I think that the truth, sadly, is more that the IT space is a fashion industry and Java is "so late 90''s". C++ and CORBA is so mid-90''s. COBOL is so well 70''s and 80''s. Pretty soon Web services will be so early 2000''s. and we''ll reinvent it all again and call it something different. All the time we ignore all the other "cool" stuff out there and the fact that each of these technologies were all cool at one point and can still be used successfully today to solve many problems.
Damon Henry commented on 23 Aug 2004
Developers seem to forget that, regardless of the technology used, the goal should be to supplement the business. I don''t think writing you own version of HashMap qualifies as something that will reduce the overall cost of most projects. As mentioned in the article, "Java is an application programming platform." Which implies, that it can be the right tool for developing the right class applications. Let the implementors of the language focus on wowing their peers, while developers focus on delivering quality software on budget and on time.
dan commented on 23 Aug 2004
Hackers - I love the comment about a real IDE for java. A real hacker would use VI or emacs.
Fubar commented on 23 Aug 2004
Think about who are making these comparisons ... people with their faces glued to a monitor trying to hack out something so that they can be called cool. Perhaps they should make a language for everyone to use so we can all be cool :)
Here''s what went through my mind reading the article:
1. "prefers not to add complexity to the language for rarely used features".
So adding integers to a vector and retrieving them is rare (yes, I do know about autoboxing and generics in the next version)? Example:
Vector v = new Vector();
System.out.println("Value: " + ((Integer)v.elementAt(0)).intValue());
That my friend is the main reason why I think Java is un-cool, it''s too verbose. I don''t know what easy means to you, but I don''t consider it easy to quickly express my thoughts and ideas in Java, and that''s the main reason I need a programming language.
2. "with the recent advancements in the JVMs from Sun and IBM, Java runs pretty close to C/C++".
And then you link to a benchmark which compares the numerical performance of Java. Integers in Java are *not* objects, so they will not involve any dynamic dispatch, memory allocation (thus garbage collection) a.s.o. (which is really what sets Java apart from e.g. C, other than the byte code of course).
So even though your Ackerman is almost as fast as pure C, it still takes minutes to start up Tomcat, my browser still freezes when I need to use my (Java powered) web bank applet, and Eclipse is still too slow for my taste on a 733 MHz G4.
3. "Swing is a brilliant, although hard to learn".
I really do not agree that Swing is brilliant, and I doubt I''m alone with this opinion. Anyway, wasn''t Java just too easy? Isn''t the GUI framework a quite essential part of Java if you want to write applications?
4. "Java is a strongly typed [...] Too much chaperoning?"
Take the initial example I gave, here I need to cast the result from the vector to an integer object, so in case the object in the vector wasn''t an integer, I would get a run-time exception. So what happened to compile-time type checking? Java really takes the worst from both worlds (of dynamic and static typing) and add further disadvantages to this.
And other comments have pointed out, there are better solutions to the problem Java tries to solve.
5. "Java has a vast library [...] you would not be considered a data structures guru"
Most of the cool languages are cool because they have a vast library, so this point makes no sense. I would also argue that when it comes to data structures, Java''s vast library of data structures (and algorithms?) is rather primitive in use compared to the Standard C++ Library.
6. "Java did not have a good IDE"
As with a previous point, neither do most of the cool languages. And Java has had good IDEs for years now.
7. "Java is popular"
This statement also makes little sense. How can something be un-cool and popular? Or cool and unpopular?
And please remember, we are talking about a toolset to get the job done, not popular culture, so I doubt anyone would change programming language, just because it became popular.
Also, it seems that you are really comparing Java to ANSI-C, I do not think ANSI-C is cool these days! ;)
8. "You cannot do cool things like device drivers and games"
Can you do that in any of the cool languages?
I think your article would have been more interesting if you instead tried to highlight why Java ought to be among the cool languages!
verbat commented on 23 Aug 2004
Java has considerably fewer surprises of what? Many of Java''s shortcomings ( ''an int is not an object'' , or ''a class is somewhat like an object'' or ''you can''t handle creation an inizialization of objects separately'' and now ''let''s remove all types from generics") are places where it can be made more consistent and surprises can be reduced.
You don''t need to add complexity to make your language nicer.
Java has been considered slow for ages.
Well, I agree that Java is not slow. But consider the standard download of Sun''s J2EE+AppServer. Now start it. Wait. Wait again. Re Wait. Wow, started.
Stuff like Orion may beat this concepts out of the people, I hope this will happen, but don''t see it so soon.
Swing disasters continue to give Java a bad name.
Java is a strongly typed language therefore you have to tell the compiler exactly what you intend to use
Beware, talking this way you make Graham''s point that Java programmers are l00s3rz.
Static typing and manifest typing are really ortoghonal.
If you want to permain in the static world and on the JVM take a look at Nice, it is basically Java done right.
Java has a vast library that is available to all Java developers without any ambiguity.
This is nonsense. Complex libraries are available in almost any language more high level than C, be it ruby, python,smalltalk, or eiffel. If you write yet another Map you may be considered a guru. Thath is what Jakarta''s Common Collection is for.
Java did not have a good IDE that compared with MS Visual Studio
I don''t really think this matters.
Java is popular. Anything that is popular has lost its elite status and therefore is not cool
I like this social vision. Sounds like "Windows security is so broken because it is so popular". It is partly true, sure, but partly windows is broken, and partly Java is not so good.
Java is an application programming platform.
I don''t see this as a problem, and actually I think you can do device drivers in Java, JNode should do this, IIRC. But this does not make the language better.
Andrew Shuttlewood commented on 23 Aug 2004
Just one nit - ocaml and haskell are strongly typed and you don't have to tell the compiler about the types except in a couple of cases. But then, ocaml and haskell don't have the wealth of libraries or the decent IDE support
jhook wrote: Java is cool, but I'm tired of having to learn 5 different ways of doing one thing. Not only playing a guessing game of possible solutions, but once picking a solution, books tell you to wrap the solution up in a facade, adding more complexity to your application.
That's not to say that patterns are patterns, in any language, but with .Net you are left with the confidence of a strong single leader, Microsoft. Sun and Java, on the other hand, is led by commitee. Smart people are tossing API's out there left and right that are nothing more than ideas-- J2EE for example. Again, I'm left with picking a vendor/solution.
With Microsoft, things are pretty much set in stone via the tools they provide. This is how .Net handles MVC, this is how .Net handles Database access, this is how .Net cooks a turkey.
I would feel more confident know that our implementation was written on a single st...
Serguei Bakhteiarov wrote: I think (as Wittgenstein too :-) that the "languages defines your mindset". This applies to programming languages as well.
However, judging is the language tool or not is sort of meaningless, because "underneath" it is still, well a bitcode.
So from this stand point any computer language is a tool. Mixing the tools (languages) to produce bitcode is perfectly fine and it happens all the time, especially in "big" projects :-)
tim wrote: I think Ivan's comments (14 September 2004) are not correct. (Or maybe irrelavent?)
"Why so many people think, that programming languages are tools? Programming languages are aptly named *languages*: they form your way of thinking."
If your choice of language forms your way of thinking, perhaps you aren't working from the abstract solution first...
Ivan wrote: Why so many people think, that programming languages are tools? Programming languages are aptly named *languages*: they form your way of thinking.
When you are solving a software problem in a medium to big project, you most often cannot change the languge in the middle of the project. You have to solve it *in* Java or *in* C# or whatever language the project is written in.
Tools are not like that. You start to search for the best tool to solve the problem, and not thinking to yourself "should I hammer it from the front or from the back side?" Nor you try to build the whole building with a jigsaw.
So, programming languages are more unlike tools in your toolbox.
Darren wrote: Please excuse the rants on my last post. Paul's essay touched a nerve.
It doesn't matter if Java is cool or not. It doesn't matter what tools you use as long as you are still creating something wonderful. Mr Graham should know this if he considers himself an authority on hackers. If he doesn't, its his loss.
Darren Pye wrote: I would really like to see Paul's resume.
It sounds to me like he has no experience in the real world working on anything other then small simple problems. That's not great programming, thats hobbyist coding.
He seems to have had a very cushy and narrowly focused set of projects and problems that he has dealt with. In that scenario...SOME of what he said is valid. The Disney land he describes could work. But what about the real world with real complex problems to solve? With his beliefs I find it almost impossible to believe he has had any real part in solving a serious software problem. Oddly, his views remind me of my own back in the early 80's. I was a hobbyist programmer considered a wizard among my peers, with an ideal of the perfect working environment. However, I was working on small finite (and now that I know better, simple problems)...then I turned 12 and starte...
Rajitha wrote: Even I feel this a pointless discussion. With my experience what I feel is, no language is similar. Each one is strong on its own areas and there are applications where one can perform to the most and others not. So comparing a language with another language is completely pointless.
perrin wrote: Java is verbose, pushed by totally uncool corporate goons, and not open source. Duh. However, Graham's criticisms, while funny, are almost completely wrong. There are lots of good hackers using Java, and all you need to do to see this is look at the open source Java community. There is a willingness among them to admit that some problems are actually complex and are not best solved by writing three lines of code (often in a bizarre newly-invented syntax). I find this acknowledgement somewhat lacking among many Perl programmers who I meet.
Tom wrote: Java is a ver cool simply from the aspect that it brought a new paradigm to the forefront.
The lofty ambition of being able to write once and run anywhere was achieved with the exception of little quirks here and there. The defragmentation of the JVM from the published standards killed the WORA process - that is not the fault of Java but of the JVM writers.
The simple fact that it can cause such an uproar from those both for and against the language/platform is a tribute to how cool it really is.
Remember, it is just a tool, not for everyone or every situation, but like any tool, when used properly it will do the job in a most satisfactory way.
Good computing everyone.....
Gregg Saffell wrote: I taught Java to undergraduate business students last year and was surprised to learn the extent to which C# was perceived as being easier to learn. I think the ease of finding, downloading, and installing the JVM and an IDE along with the learning curve associated with the IDE were the main culprits. Microsoft had made all of the above very easy for the university and students whereas the Java side required a good deal more effort on the part of the teacher and the students.
For Java to be a "cool" technology beyond the world of computer specialists, a lot more will have to be done to flatten out the learning curves of both the language and a free IDE. Do you realize how much you have to master just to be able to write even a console oriented Hello World program?
Until an application of at least minimal complexity can be implemented easily by a novice, the rest of the world is no...
Mark Watson wrote: Is Java a little un-cool? Sure. So what.
I love doing server side Java. Is Java my favorite language? No. That would probably be Common Lisp. The thing is, for most of the work that I do, Java has several advantages:
Great free platform support for web presentation, SOAP, XML-RPC, asynchronous messaging (JMS), etc.
There are many skilled Java programmers: when I build a system for a customer, I can feel confident that maintenance will not be a problem.
Common Lisp has advantages also (extremely fast compiled code, small runtime overhead, rich standard library, very terse language) for some types of development (I use Lisp for working on algorithms, natural language processing, and other problems where I am breaking new ground - Lisp is great for experimental programming).
Ivan wrote: Practically, every big and most medium-sized java programs I''ve seen, use code generation. For example, GUI builders, persistence frameworks, etc.
Code generators have the following problems:
* They are hard to write. You will make a code generator only if the only alternative is to "generate" the code manually.
* They don''t work well with other code generators: you cannot have a persistent GUI class for example. (I know, it''s a silly example, you''d want to make only the model persistent, etc. but the argument is still valid, I''m just to lazy to come up with better example :)).
* Code generators don''t work well with the IDE. The IDE will know only about the generated code, and not about the *source*. This is partly because IDEs in Java have code generators on their own (sometimes called "wizards").
So, why does Java needs code generators that badly? Because it l...
Ralph Mack wrote: Ultimately, end users of application software care about one thing:
- From where I am, I tell it to do what I want and it _just works_.
This goes for acquisition, installation, invoking a program, accessing a web site, running a program, or making it go away. Post it up on your wall. Whatever you have been told, after all the supervisors, managers, marketers, salesmen, pundits, and other superfluous personnel are out of breath, and there''s just you and your user left standing, this is all that really matters.
So what makes it "just work"? How does Java fare?
* The existence of machines that ship without a JVM and the requisite base libraries give it a poor score for install.
* The slow load time on application startup definitely hurts.
* The programming model prevents most memory leaks, a major cause of the kind of C/C++ program failures that cause users to follow th...
Matt wrote: To debunk the question of whether Java is un-cool, you need a handle on what cool is. The popular view is that cool is one of those Zen-like notions that ceases to be cool once you define it. Taking a decidedly un-cool approach, I typed in "what is cool?" in Google. It came back with a dozen or so definitions it found on the web. I think this one nails it:
"A term which is used entirely too often on the Internet."
Is Java un-cool? With millions of developers, it''s easy to make the case that it''s popular. With the collective experiences from the Java community, it''s not difficult to argue that it is a great language for improving productivity and maintainability. Java **was** cool when it came out in 1995. Does that make it cool now? I think not.
tim d wrote: I read Graham''s stuff...seems kind of silly, wasn''t sure if it was a joke or serious stuff. Who cares about what HACKERs want/like? What about SOFTWARE ENGINEERS? I work on a huge application that would be impossible in Python but Java makes it possibly--and with less bugs than C++ would give us, by far. I was a C++ developer for YEARS and now after 2 1/2 years of JAVA, I hope I don''t ever have to go back...Java isn''t COOL--it''s BETTER. (Of course, there are some things we still have to do with C/C++...but we''ll live with those.)
jay_sdk wrote: I actually really like Java, cool or uncool. I write shell scripts for common tasks/utilities on Unix, use Perl where it gets a little more complicated or I need something that takes input, modifies it and puts it somewhere else.
Started Java in ''97 when it was mostly used for silly applets.
But most of my job consists of web-applications. With the WORA I can write it on a workstation/desktop whether on Win2K laptop, or Linux workstation, or whatever, and still deploy without problems to any target application server on pretty much any platform. I can see benefits in EJBs if you''re going to deploy against load-balanced massive systems of say 100+ servers, but just using servlets, JSPs and JavaBeans I can drop it all in a single WAR and deploy as many times by ftp-ing it to the server. In TomCat that''s enough, for those commercial ones I may have to register it once in an admin...
David Bueche wrote: People need to spend less time worrying about looking "cool" and more time getting the job done--regardless of which language they use. Regardless of how "cool" you look today and which language you use today, you WILL be using something different in a handful of years, whether a different language or a shovel.
craig wrote: coolness != good language
coolness is about doing things like:
- low level memory manipulation; because only a cool programmer would ever even know why you would want to do this.
- Write really tight, very fast algorithms.
I agree that java is faster to write code in, but coolness is related to having complete control over your computer or being the latest trend. Assembler / C / C++ are still cool because the allow this. .NET is cool because it is the new kid on the block. Business efficiency is a totally different question than coolness.
Java was cool in the 90s because it made the web come alive, worked well with internet technologies, etc. Other languages appear to be catching up, and java has reached the masses. There is nothing unique about java that continues to make it cool; productive and useful yes, but productive no.
Lori MacVittie is a subject matter expert on emerging technology responsible for outbound evangelism across F5's entire product suite. MacVittie has extensive development and technical architecture experience in both high-tech and enterprise organizations, in addition to network and sy...
When building large, cloud-based applications that operate at a high scale, it’s important to maintain a high availability and resilience to failures. In order to do that, you must be tolerant of failures, even in light of failures in other areas of your application. “Fly two mistakes ...
In his general session at 19th Cloud Expo, Manish Dixit, VP of Product and Engineering at Dice, discussed how Dice leverages data insights and tools to help both tech professionals and recruiters better understand how skills relate to each other and which skills are in high demand usin...
Containers and Kubernetes allow for code portability across on-premise VMs, bare metal, or multiple cloud provider environments. Yet, despite this portability promise, developers may include configuration and application definitions that constrain or even eliminate application portabil...
Modern software design has fundamentally changed how we manage applications, causing many to turn to containers as the new virtual machine for resource management. As container adoption grows beyond stateless applications to stateful workloads, the need for persistent storage is founda...
Using new techniques of information modeling, indexing, and processing, new cloud-based systems can support cloud-based workloads previously not possible for high-throughput insurance, banking, and case-based applications. In his session at 18th Cloud Expo, John Newton, CTO, Founder an...