Jackpot - James Gosling's Latest Project 208
Pete Bevin writes "Artima has a fine interview with James Gosling, creator of Java, about his latest project. It's called Jackpot, and it treats the parse tree as the program. This makes refactoring much, much more intuitive. The article has some good insights into code visualization, technical writing, and making your programs more understandable."
It's the Matrix! (Score:4, Funny)
Why, methinks he's reinvented the Matrix.
Interesting (Score:5, Interesting)
Re:Interesting (Score:2)
java < emacs (Score:4, Insightful)
Re:java emacs (Score:2)
No NeWS .... (Score:2)
Re:java emacs (Score:4, Interesting)
Gosling has been hostile to open source from day one. He created NeWS and tried to kill off X11, and he was probably partially behind keeping Java proprietary.
SOMEONE METAMODERATE THIS INTO OBLIVION (Score:2)
"treats the parse tree as the program"? (Score:5, Insightful)
I've heard that somewhere before...
Oh yeah. In my ANSI Common Lisp book. Something about the real power of Lisp being that everything, including the program itself is just a tree structure.
I guess programming languages really are slowly merging. Java isn't getting macros [slashdot.org] now, but I suspect in another 5 or 10 years it'll be something else Java will do. =)
-Ducky
Re:"treats the parse tree as the program"? (Score:3, Interesting)
Oh yeah. In my ANSI Common Lisp book. Something about the real power of Lisp being that everything, including the program itself is just a tree structure.
Or on Paul Graham's [paulgraham.com] website. Wonder if Gosling will be coming up with something to compete with Graham's ARC...
Re:"treats the parse tree as the program"? (Score:2, Interesting)
Maybe in another 10 or 20 years ALL programming languages will be as powerful as Lisp.
Then 10 years after that, we can start passing around s-expressions instead of XML because "the data is the program".
Wow. The "future" looks grand.
*sarcasm*
Re:"treats the parse tree as the program"? (Score:3, Insightful)
Actually, the other languages do make progress in that direction. Look, for example, at Python: It has objects, metaclasses, introspection, an interactive environment, functions as data (even if lambdas could've been done better), strong dynamic typing, runtime extensibility (albeit clumsy), not to mention small conveniences like keyword and rest args or docstrings.
I could imagine that, 10 or 20 years from now, it wil
Re:"treats the parse tree as the program"? (Score:2, Insightful)
Oh, absolutely. I agree 100%. My sarcasm intentionally was based on truth.
Basically what I was saying (which is certainly not my own discovery) is that the semantics of Lisp/Scheme/Other Lisp Dialects move "language features" into the realm of the developer (as opposed to the language designers). Plus there is the bonus of being able to operate on the program itself. And for these reasons, pretty much any feature somone is planning to ad
Modified Godwin's Law (Score:5, Funny)
As a Slashdot thread on a programming language progresses, the probability of someone claiming that "Lisp already does that" approaches unity.
Re:Modified Godwin's Law (Score:5, Flamebait)
If I had mod points I'd mark you up as funny - but have you read and grokked the Meta Object Protocol ?? Because much as I hate Lisp at the lower syntactic levels, I keep on finding that features I like in other languages were actually present in the MOP and similar. That's not to say that other languages don't present the ideas in better and easier-to-use ways, but it still pisses me off that those beardie-weirdie Lisp blokes had already thought of it so much earlier...
We kill what we fear, and we fear what we don't understand....
--
Re:Modified Godwin's Law (Score:3, Funny)
I don't understand you. Does that mean I have to kill you?
Re:Modified Godwin's Law (Score:2)
I should think I deserve to be shot for quoting a crappy line from a Genesis song... so yeah, come on round.... I'll put the kettle on and you can kill me after coffee...
Re:Modified Godwin's Law (Score:2)
The previous times the people who said LISP could do *everything* were arrogant fools. LISP can do everything, yes, but it could only do those things in a very annoying fashion.
In this case however, this guy took all the features that LISP had and he took all the annoyances that LISP had and he basicely copied the entire thing. He goes out of his way not to menti
Re:Modified Godwin's Law - with a twist (Score:2)
Unlike Godwin's Law, though, the probability that the claimant is correct also approaches 1.
Re:"treats the parse tree as the program"? (Score:5, Insightful)
Well, actually, there seems to be more to Jackpot's methods of code visualization than that. Lisp code can be thought of as having a tree-like structure, but it may not be as clear as what Jackpot's visual representation my be. What Jackpot would do is show the annotated parse tree, so it can give much information about how it is constructed. It would be a useful graphical representation that appears to go beyond what Lisp code would show, and with that representation and the source code, you can get the best of both worlds.
Anyway, they also mention that you can implement a "reverse grammar" that would take data formed in parse trees and make code more readable. For example, you can have Greek letters and other mathematical notation such as the square root symbol. If you have long equations in your program, this could be very useful in making your code readable, and thus understandable.
So what Jackpot seems to be is a way of giving different ways of viewing the code you write, which, IMHO, can go a long way in solving problems with it and simply improving on it.
LISP, the religion (Score:5, Insightful)
While it's true that the program is the parse tree in Lisp, that's not a very strong statement. Lisp's elegance comes from the fact that there are so few constructs in the language, and basically everything is a list -- even your programs. But they're basically just lists, that's all. So you have this wonderful flexibility, but the parse tree doesn't actually tell you very much about the program; you have to "parse the parse tree" to recognize higher-level constructs.
Now languages with lots of language-level constructs -- like strong static types, objects, access modifiers, etc. -- tell you a whole lot about high-level structure with their parse trees. (And, for those following along at home, Lisp is not such a language -- not that that's a bad thing, but it isn't. Lisp builds these high-level constructs out of a very few language-level atoms.) To my knowledge, applying the "language is the parse tree" principle to non-functional languages is still largely the domain of research projects like Jackpot, Eidola, and Intentional Programming, and visual languages.
Moral: Lisp is very, very, very cool, but it has not already done everything every other language is doing. So yes, it may sound familiar from you Lisp book, but it's not the same.
Re:LISP, the religion (Score:3, Insightful)
While it's true that the program is the parse tree in Lisp, that's not a very strong statement.
True.
Lisp's elegance comes from the fact that there are so few constructs in the language, and basically everything is a list -- even your programs.
Hmm, except for the arrays, hashtables, structures, objects, compiled functions, strings, rational integers, bignums, system pointers, etc that Common Lisp provides.
But they're basically just lists, that's all. So you have this wonderful flexibility, but the p
Re:LISP, the religion (Score:2)
It (the former) tells you the set of messages (or methods, whatever you wanna call them) that it is legal to send to the value in question. It tells you what kind of thing the value is supposed to be. How can that not be useful in analysis?
Perhaps. I think Lisp programmers tend to worry less about refa
Re:LISP, the religion (Score:2)
It (the former) tells you the set of messages (or methods, whatever you wanna call them) that it is legal to send to the value in question. It tells you what kind of thing the value is supposed to be. How can that not be useful in analysis?
I'm sure it's useful in analysis - the question is what the analy
Re:LISP, the religion (Score:2)
I would dispute that. All you have to do is prove that each part works as specced and that no interactions throw the whole thing out of whack. In other words, "unit proving" and "integration proving", akin to unit testing and integration testing.
type checking sees diminishing returns after 300k lines of code or so.
But type checking alone, without contracts, is only a very formalistic, shallow process - so it's not surprising that it would catch a tiny fract
Re:LISP, the religion (Score:2)
Well, it doesn't help any in a language where anything and everything can be done at run-time. Most problems that benefit from this type of analysis are hard, and most hard problems are very dynamic. Besides which, what benefit would this have for analysis beyond the
Re:LISP, the religion (Score:2)
I don't understand your point. Yes, you may be able to send a "GiveBirth" message to a "Man" object, but that doesn't mean it will make any sense to do so.
Strong typing in the context of a "pointerfree" language, and appropriately used, only prevents you from doing things that make no sense.
And also absolve them from the responsibility of designing their classes well the first time.
Oh come on. Ever heard
Re:LISP, the religion (Score:5, Interesting)
(OK, that's enough to prove I'm a SmugLispWeenie [c2.com], I guess ... ;-)
No. You can parse the parse tree to reason about or modify programs. You can as well use higher-level constructs, for example asking for the class of an object and manipulate it, the declared types of variables and functions, etc. The whole metaobject protocol is about giving you an object-oriented interface to your program internals, and the same style shows in various other places. Basically, a lot of what is lost at compile-time in most other languages is a live first-class object in Lisp - for a simple example, you can get the package of a symbol, see what other packages it imports, change its name, and make some symbols in it not being exported. Indeed. But Lisp is the only language so far that allowed adding new concepts in portable ways, without having to modify the underlying implementation. CLOS, the object system, is basically a bunch of functions and macros, and if you don't like its class/generic-function based approach, just load a package that implements a prototype-based one and use that. An implementation of Eiffel-style design by contract is about two screenful of code, adding final and abstract classes is less.Are these additions "language-level constructs"? Hard to tell. The syntax the programmer deals with is just as if it were, even if everything eventually gets expressed in lower-level terms. The distinction is just not meaningful in Lisp - there just is no hard barrier between the language designer and the user, Lisp users design their language all the time.
Re:LISP, the religion (Score:3, Interesting)
Well, yeah, and that's just the thing -- because it's so wonderfully extensible, your ability to reason programmatically about a program is limited. To analyz
Re:LISP, the religion (Score:2)
That explains a lot of what you were saying here. While Lisp has one of the biggest language reports, Scheme reports is one of shortest. Both among all programming languages.
No offense, BTW. I've just tried to explain the major difference between Lisp and Scheme.
Re:LISP, the religion (Score:2)
Oh, none taken, and likewise.
Re:LISP, the religion (Score:2)
Re:"treats the parse tree as the program"? (Score:2)
Lisp 1.5 in someways wasn't Lisp 2.0 because the original form of the language was in terms of "M-expressions" that looked like mathematical expressions and Fortran. The idea was to have a compiler that translated the M-expressions into the internall forms of S-expressions. However as John McCarthy Says [stanford.edu]
Re:"treats the parse tree as the program"? (Score:2)
Re:"treats the parse tree as the program"? (Score:2)
Now that computers are fast, Python and Perl speed doesn't matter very much.
I almost laughed out loud at this line... (Score:2, Funny)
So says the creator of Java. I wonder if he's bothered to browse the API lately?
Re:I almost laughed out loud at this line... (Score:5, Insightful)
"Complexity is in many ways just evil. Complexity makes things harder to understand, harder to build, harder to debug, harder to evolve, harder to just about everything." -- Gosling
Software entities are more complex for their size than perhaps any other human construct because no two parts are alike. If they are, we make the two similar parts into a subroutine - - open or closed. In this respect, software systems differ profoundly from computers, buildings, or automobiles, where repeated elements abound. -- Fred Brooks, Jr.
Which quote tells you more ? Which quote has more insight ? Which quote came 30 years earlier ?
Here's a clue - complexity in software doesn't usually vanish at some magical point, we just aim to achieve a position where our view of inherent complexity in a problem becomes optimally manageable. As the fundamental point of interest within a problem domain changes over time, so will the optimal viewpoint. The point of re-factoring is to move our viewpoint according to what we want to do now, not what we wanted to do when the code was written.
Gosling is talking techno-babble... tell him to draw a parse tree of any meaning in his jargon.
Re:I almost laughed out loud at this line... (Score:2)
Hardly. What he's saying there is (to expand a little), when code becomes too complicated, it becomes hard to understand, and thus people waste a lot of time trying (and often failing at first) to debug, evolve etc.
Obviously, he skipped a word or two there, making his statement less than 100% accurate - as any normal human being is wont to do in ordinary conversation - a fact which many overly critical Slashdotters are prone to ignoring!
I'm surprised you find the quote
Re:I almost laughed out loud at this line... (Score:2)
I meant the article was techno-babble. The selected quote (that made me and others laugh) was just plain banal: "complexity is complex" - gee whiz, James, why not say "good is good and bad is bad" - the point is that complexity the fundamental problem we're attempting to manage. If that's as de
Re:I almost laughed out loud at this line... (Score:2)
The quoted sentence was just dumb. The rest of the article was techno-babble. And I'm sorry I haven't convinced you of my right to comment on it, but I stand by my statement.
Neither is the quote dumb nor is the article techno-babble.
The article does not ask you to agree in any way with Goslin. The article tells you what Goslin is working on currently. If you dont find his work exciting then there are basicly 2 reasons possible: a) you are not interested in that research area. b) you did not understand
Re:I almost laughed out loud at this line... (Score:2)
Hmm, lets take the quote which makes people laugh out loud (why do you think they do that - is it because they think it's a statement of genius ??)....
Complexity is in many ways just evil. Complexity makes things harder to understand, harder to build, harder to debug, harder to evolve, harder to just about everything.
So, he says, complexity is hard. Well, that's a truly deep insight. Can you see anything else of value in this quote - I can't.
Re:Complexity *is not* hard (Score:2)
A solution to codings which are to complex are refactorings. Note: that means splitting classes, merging class, moving methods etc. Not only renaming like one of the posters here tried to "joke"(?)
Refactoring in IDEs like IntelliJ/CodeGuide/Eclipse are very limited so far. Only a little bit bejond renaming.
Why is that the case? Because the toolchain fo
Re:Complexity *is not* hard (Score:2)
And where does it say that ? Nowhere - you're taking something that you know and reading it into a quote that doesn't say it. Judge the article not by what you already think, but by what it says, and you'll find it says nothing, but flatters the reader. Now take Brook's argument [gsu.edu] about the essential and accidental complexity of software (that I alluded
Re:I almost laughed out loud at this line... (Score:2)
Why does code become too complicated in Java? Because the language was designed poorly and lacks good mechanisms for abstraction.
If Gosling were concerned with "complexity" or knew anything about how to manage it, he would have designed a better language. Jackpot is not a solution to Java's
Re:I almost laughed out loud at this line... (Score:2)
Re:I almost laughed out loud at this line... (Score:2)
Some people hate Smalltalk no matter how you dress it up.
Re:I almost laughed out loud at this line... (Score:2)
I challenge you to program in Java for a year or so then go back to C++, Python, or pretty much anything else. It may feel great to stretch your legs out and exercise some syntacti
Aw, crap. (Score:3, Funny)
Another James Gosling interview (Score:2, Troll)
Gosling likes idea of open source Java
Re:Another James Gosling interview (Score:2)
My opinion? (Score:3, Informative)
Now, put this support straight into emacs and I'll be happy.
Re:My opinion? (Score:2)
Now, put this support straight into emacs and I'll be happy.
EmacsOS does not support this yet? Wow, thats weird. (Goes back to controlling his water heater temperature from Emacs)
IntelliJ (Score:4, Interesting)
When working in it, you feel like you're not just editing Java -- you're editing the fully integrated structure of your software.
Re:IntelliJ (Score:3, Insightful)
For those of you that have no idea what IntelliJ IDEA is, check it out [intellij.com]
Re:IntelliJ (Score:2)
Let me give a hearty amen. It's so amazing that a colleague even dropped Emacs for it. That's like quitting the Borg.
Re:IntelliJ (Score:2)
Re:IntelliJ (Score:4, Informative)
It's supremely configurable, very keyboard friendly, and has more and better features than its rivals, and runs faster with a better UI.
I personally have not used Eclipse, so I cannot make the judgement myself, but I've read threads debating the merits of the two, and IntelliJ's IDEA seems to come out ahead in the end.
Personally, I like the ease of use and intuitiveness. You don't need to work 'its way', but the more you use it, the more features you learn about, and many times the reward is big enough to warent changing long-time habits. One example:
Type out the word 'new' and the first few letters of the class you want. Then hit the 'code completion' key, and then hit 'introduce variable'. Wham. It completes the entire line, declaring the variable in line. You save a vast amount of typing. Or you can 'program by intention'... just start typing code. If you type a method name or variable that doesn't yet exist, just hit Alt-Enter and it'll let you create it. A simple 'back' button and you're back where you were to continue coding.
Code inspections find potential Null Pointer Exceptions and other common issues and errors; never worry about managing imports again; fold away code you don't want to see; automatically detects out of date or erronious javadocs and flags them; incredible refactoring support (rename variable, method, class; push method or varible up or down the inheritance hierarchy; introduce methods and variables; extract methods from inline code; inline methods; change method signatures; etc); real-time syntax checking and error/warning highlighting (see at a glance if you have any unused variables, private methods, typos, etc); awesome code completion; great code navigation (jump to implementation/declaration, forward/back); intelligently "find usages" of specific variables or methods; call and inheritence hierarchy trees;
I could go on forever. Plus, if there's anything you think is missing, or don't like, you can easily write a plug-in to add it or modify the behavior. Many people have. IntelliJ even has a WIKI site for users to post their own plug-ins. They also have an excellent bug reporting system, and they're very responsive.
Re:IntelliJ (Score:2)
IntelliJ IDEA has the abbreviations feature you mention, and includes the ability to "surround selected text" with the abbreviation, and expand into complex structures (like for loops with bodies) that even substitute appropriate variable names and types for you (letting you edit them easily after the expansion). It's very powerful.
IntelliJ IDEA doesn't explicitly have the Alt-K/L feature, but it's code completion 'learns' and will put your lengthy java i
Sounds vaguely functional (Score:5, Interesting)
Of course all this is easier in functional languages, because you don't have to worry about state, identical trees will always evaluate to the same value. Not so in Java, if any of the nodes refer to global data.
I wonder how often Gosling talks with Guy Steele, who was pivotal in the development of both Scheme and Java. I'd love to see what they'd come up with if they put their brains together.
babblefish translation please (Score:3, Funny)
same thing but for C? (Score:2)
Jackpot vs. Sun's Last Stand (Score:3, Insightful)
if people like Gosling could show Jackpot
and its benefits in a BUSINESS CONTEXT.
- Code gets cleaner, easier to maintain & debug.
- Multi-thread scaling areas get easier to spot.
- Profiling tools speed up based on the algebra.
- IT staff in mergers can finally merge apps.
Sure the technology is "cool" and "entertaining"
but these days Sun needs a profit.
Cheers, Joel
Re:Jackpot vs. Sun's Last Stand (Score:2)
Sun probably does not want to market a tech which may not go into production for yea
Re:Jackpot vs. Sun's Last Stand (Score:2)
As for "merging apps", that's almost always a stupid idea to begin with. The parts of apps that were designed to be reusable should already be in identifiable libraries. The parts of apps that weren't designed to be reusable shouldn't be merged. If they do need to interact, have them communicate via IPC, RPC, DOs, or some database.
Reminds me of whitespace (Score:2)
Just Great (Score:4, Funny)
links, with 'Jackpot' an unlucky click and it might take 20 min to undo the popdowns, offers for the *best internet casino*... and oh my gawd, add to the wrong mail list!
(I was going to add an example link but I wouldn't do that to my worst enemy)
Re:Just Great (Score:4, Insightful)
Chuckle... my poor friend, why don't you just upgrade to the lizard [mozilla.org]? :-)
Sounds like LISP to me (Score:3, Interesting)
Such a language, much like LISP, might be quite useful with respect to genetic programming.
In addition, a parse tree language which has lots of internal understanding of data flow might make for a good intermediate step in a compiler or perhaps become a better LISP.
It's good to see that Gosling isn't resting on his Java laurels but applying what he's learned in new areas of research.
Appropriate (Score:3, Funny)
So what's new? (Score:2, Interesting)
Smalltalk has this:
(3/5) class methodDictionary at: #+
which will give you the + method for the Fraction class. From that object (the CompiledMethod) you can get the original source code (if it's available), or a parse tree. The parse tree will give you indices into the original source, in case you should need to do a GUI for your IDE
Say you're writing a debu
Gamma and OO (Score:3, Informative)
GREAT.
Things are getting very interesting in the field of improving the coding process. I still remember Sniff C++ started by Eric Gamma in the early 90-ties. This was the first product to visualize/navigate over large C++ projects that blew me away. One can certainly see this approach in Eclipse - one of the latest projects of Eric Gamma.
A few very smart IDEs appeared - CodeGuide, Eclipse, IDEA.
Eric Gamma was working in an IT research lab in the UBS in Zurich in Switzerland before he became really famouns with his GoF book.
Lars
Re:Gamma and OO (Score:2)
GREAT.
If you used a better programming language, you wouldn't need complicated tools to "discuss your program on a whole other abstraction level".
The stuff Gamma has been doing is the equivalent of "structured programming for assembly language programmers". It's a set of tricks to make programming in OOLs slightly less awful than it would be otherwise. It is certainly not a great advance in software engineering.
Link to Jackpot home page (Score:3, Informative)
Not new (Score:2, Interesting)
For example, people (including me) at Rice University worked on a source-to-source Fortran vectorizer that manipu
Re:Not new (Score:2)
Besides Lisp and Eclipse and IntelliJ, this sort of syntax-tree-oriented manipulation has been going on in optimization and programming language research for the last 20 years. (And Eclipse does a fine job -- all that chit-chat about encapsulating public instance variables is just a choice on the refactoring menu, and it's free. I've got no idea why Gosling thinks this is new and interesting.)
Eclipse does only 10 of over 100 actual "named" and "known" refactorings.
And Eclipse does it by looking at a "
Re:Not new (Score:2)
> "push method up" method?
Then that AST would have to include a global symbol table to resolve references to that method and thus would be, more or less, a compiler front end (albeit without the intermediate representation).
Getters/Setters (Score:2, Insightful)
One piece of analysis, therefore, is to find all the public instance variables. But we can find them and also make them private, add all the setters and getters, and account for what it means to actually access the variables via setters and getters.
As I've said before, Gosling appears to have oblivious to most of the research that had gone on in the field of object-oriented languages.
Java should been designed from the start to enforce getter/setter access to instance variables. This fe
Re:Getters/Setters (Score:2)
While this is certainly possible, I doubt it seriously. NeWS was specifically set up to be able to use OO techniques. I also remember that early discussions and descriptions of java mentioned most of the OO languages of interest at the time and discussed their good and bad points. I don't know that Dylan was mentioned, but I'd be very surprised given Gosling's background that he was unaware of it. And I think it would be just as hard for him to b
Re:Getters/Setters (Score:2)
This isn't an academic paper appearing in a context which has strong norms of citation. This is an informal interview.
Re:Getters/Setters (Score:2)
Yes. In my dream world, somebody at Sun will get a fucking clue and make getter/setter stuff implicit based on keywords when you declare the variables. Then if you need to override the default getter/setter behavior, you just explicitly declare the methods.
Then we can make the call implicit, throwing out all the foo.getBar().getBaz() crap and just make it foo.bar.baz.
At a guess, that would remove about half th
Juice (Score:2)
And there are the obvious advantages that might be gained by representing programs as XML trees (internally at least, programmers don't need to see it).
The Refactoring Browser (Score:2, Informative)
INTERLISP had this (Score:2)
INTERLISP's internal representation was the LISP s-expression. Programs lived in huge saved binary workspaces rather than text files, at least while being developed. This had pluses and minuses, especially on the underpowered machines of the period.
There were a number of transformations one could perform on code in this form, and they were guaranteed not to change the semantics of the program. You could designa
SCID / decorator pattern (Score:2)
1) SCID [mindprod.com] seems to be a similar thing.
2) From the interview: For instance, if you've got a static method that takes an object as a parameter, and it modifies that object, then somebody probably just slapped that method in there because it was easy.
I don't think that's really true. Classes with static methods seem to be very convenient to me. Much like the decorator pattern, where code (here in the static method) only deals with modifying data objects given to it. That
A commercial Lisp system did this... (Score:3, Informative)
LOOPS had:
A single-inheritance object system with GUI support (class, method, and object browsers).
Editing with structure editors that manipulated the parse tree directly. The structure editor was also used as the inspector in the debugger.
refactoring support in the browsers (select a method and move it to another class, etc).
automated global refactoring based on code analysis - this being 1987, it had a pseudo-natural language interface (EDIT ALL METHODS CALLING FOO AND REFERENCING *BAR*...).
LOOPS is one of the primary predecessors of CLOS (the other being Flavors).
Parse-tree-based editing has been around for awhile - Google for "syntax directed editing". Paradoxically, it works much better in Lisp than in other, more syntax-heavy domains; when your editor insists that everything be syntactically and semantically well-formed all the time, it's best that there be very few, very general syntax rules. This is why it also works in Smalltalk.
Tremendous potential (Score:2)
His talk about complexity is a bit facetious; if you really wanted a simple programming language you'd do it all with S and K (trivial functional operators). The trick is not to minimize complexity but to achieve exactly the correct level of complexity.
Object orientation is one way of dealing with complexity: you group like functionality together into boxes with li
wrong solution (Score:2)
That sounds like a language design problem to me. The solution to that should be to fix the language, not to construct elaborate theorem provers and visual representations of the source code. Building tools to deal with a messy language will just mean that the language and software writt
Re:Here are the tips (Score:3, Funny)
I learned that when doing math proofs. It it wasn't written so retarded 6 year old can understand it, the TA took off marks.
Re:Here are the tips (Score:3, Funny)
Re:Internal Sun Memo criticizes Java performance (Score:2)
YES (Score:2)
Or I could just deny incoming connections from everyone that isn't large enough to file suit like AOL is doing. That way, I wouldn't have to learn yet another language or edit exim's source to say it's Jackpot.
Re:Nothing new here... move along now (Score:2)
Re:Nothing new here... move along now (Score:2)
Itentional Programming was pushed by Charles Simonyi, the guy that brought us hungarion notation for variable naming (oh how I hate that every time I have to deal with Windows programmers
Some time ago there was a statement that the IP crew moved from Microsoft Research to the Microsoft Development group, because their stuff should be added to a future version of visual studio.
What is it about?
Well one
Re:James Gosling versus Guido van Rossum (Score:3, Interesting)
Even though I happen to agree that Python is a better language (for the most part), I would always stick to Java. I chose Python on a project I did. I would much rather have that experience on my resume as Java instead. Python is nice, but employers just aren't looking for it.
Sad, but true.
On a side note: Microsoft Site Server 3.0 was written in Python by the original shop that wr
Re:James Gosling versus Guido van Rossum (Score:2, Interesting)
Even though I happen to agree that Python is a better language (for the most part), I would always stick to Java. I chose Python on a project I did. I would much rather have that experience on my resume as Java instead. Python is nice, but employers just aren't looking for it.
Sad, but true.
Python is nice, but employers just aren't looking for it? That's a bad reason, if any...JUST LIE!!!! Does it really matter? What _really_ matters is doing it right and doing so efficiently. If python gives you an a
Re:James Gosling versus Guido van Rossum (Score:3, Insightful)
Bzzzt! Wrong answer!
What *really* matters (to me, anyway) is staying employed. Your strategy employs two faulty tactics: lying and not focusing on what the customer needs or say they need. If you lie about your experience, then be prepared to accept the consequences when you're found out. If you do a project in Python when a customer specifically requests Java, then be pr
Re:James Gosling versus Guido van Rossum (Score:2)
I hate Python. Because the syntax sucks(in my eyes). OTOH I know a lot of people loving Python.
Further: comparing Python with Java makes no sense. Their strengthes and weaknesses are on opposite sides of the table. E.g. strong typing in Java, weak typing in Paython.
I can not work with weak typed languages, my brain simply boils out and I get far to many runtime errors to be productive. So Java with a good IDE is just PERFECT for me. That does not
Re:The Emergents got him (Score:2)
Re:Why? (OT) (Score:2)
I encourage you to take a look at IntelliJ IDEA. It blows the lid off the lie of 'show GUIs'. Other than it's start-up time (during which it's parsing your files, building caches, and other time-consuming tasks), it's quite fast. The whole thing is written in Java.
Re:The guy is psyco (Score:2)
Is it? I've found Swing to be very handy for cross-platform GUI development. Combine it with Java Web Start and you got an easy way to develop and deploy all sorts of nifty stuff. Like this [infoether.com] and this [infoether.com].