Javascript is to Java as JScript is to J?



  • @tdb said:

    I'm going to recommend
     

    Thanks, bro.



  • @morbiuswilters said:

    Once again, Facebook appears to have dropped Cassandra

    In favor of HBase. Another Java product.

    @morbiuswilters said:

    You made a flurry of poorly-thought-out posts all at once. That's probably why nobody responded to you.

    And the "it sucks too, nanana" chorus (you seem to subscribe to) is brilliantly thought out.

    @morbiuswilters said:

    Once again, I probably know Java better than you.

    And you got that from the same place you get your other "facts" (namely, your rear end)?

    @Kyanar said:

    @veggen said:
    Bonus points for Java bashers if you can name any of the following:

    1. an ORM that can compare to Hibernate

    2. full text search that can compare to Lucene and Solr

    3. anything that will let you do SmartCard authorization through the browser alone

    4. anything that can compare to Hadoop

    5. anything that can do distributed transactions without breaking sweat

    6. libraries for everything from form validation to molecelar biology readily available

    7. all of the above on any platform you want

  • NHibernate

  • Lucene.NET

  • Adobe AIR (shudder). The fucking browser

  • Define Hadoop. Apache tells me it is a group of projects, not one.

  • MS DTC

  • That's not a product.

  • That's not a product.

    • A feature-incomplete port of a Java app. Thanks for proving me right.

    • A feature-incomplete port of a Java app. Thanks for proving me right.

    • Ok. You're probably right here.

    • I meant the whole deal, but let's pick HDFS+MapReduce engine, or HBase, or anything, really

    • Partially agreed. But run it on Linux.

    • Who said it had to be a product? Just some random strong point (in my opinion).

    • Who said it had to be a product? Just some random strong point (in my opinion).

    @Kyanar said:

    You know mindless defending is as bad as, if not worse than, mindless bashing right?

    Why worse? It's much easier to bash. Plus, why mindless? I'm listing actual product names and strong points. You might disagree, but that doesn't make it mindless.



    At last, why do I get labeled as fanboy if I try to defend something that is cool to hate? I've worked with .Net (mainly, but not only C#), PHP, Ruby, Java, Groovy (can be argued that it's still Java) and dabbled with some more here and there, and just happen to have the best experience with Java. So I chose to speak my mind and explain my opinion. Java is not my pet-language, just something that proved to be a great workhorse in all the usage scenarios I happened to use it for.



  • @morbiuswilters said:

    If I can just tell my computer what I want to do in natural language and have it do it, then I wouldn't classify it as a CLI, even if the commands are typed in.
     

    That's pretty arbitrary.



  • @fterfi secure said:

    They will always be less usable than an equivalently well-designed graphical interface by their very nature.

    That is not necessarily true. The CLI is a human-invented system. It has no fundamental truth, no inherent properties and is entirely malleable. It's a thing we invented that we call a certain name we invented. It has no nature.

    @fterfi secure said:
    there's nothing you can do to a command line which will be a significant improvement and not make it something other than a command line
     

    What's the problem? "The CLI" is not a thing that exists per se. It's just one beaten path of computer interfaces.

    When I talk about a user interface, I include every interaction you have
    with a computer. The on-off switch is part of the UI, even the power
    plug.

    Well, we agree on this, anway. I was going into splainin' mode, but you do get it, except for this strange idea that "The CLI" is a fixed concept that predates human culture and has properties that can be analyzed but not changed, as though it was some sort of mathematical function.



  • @fterfi secure said:

    They will always be less usable than an equivalently well-designed graphical interface by their very nature.

    I'm not a huge fan of CLIs, but.... how do you script something unless it has a CLI?



  • @dhromed said:

    @morbiuswilters said:

    If I can just tell my computer what I want to do in natural language and have it do it, then I wouldn't classify it as a CLI, even if the commands are typed in.
     

    That's pretty arbitrary.

    <thread deviation> I only discovered recently that CTRL+B/U/I do bold/underline/italics in TinyMCE (or is it another editor?)

    - any other keyboard shortcuts that anyone knows about?



  • @veggen said:

    I'm not a huge fan of CLIs, but.... how do you script something unless it has a CLI?

    Write it in an editor (notepad.exe or so) and save it with a suitable extension. Allow the [webserver|cronjob|backup] to call, parse and run it.

    Yes, I know I'm clutching at straws with such fringe cases. I just wanted to be a smartarse before anyone else.



  • @Cassidy said:

    - any other keyboard shortcuts that anyone knows about?
     

    Euh... Win+E starts explorer?



  • Doh! I meant... in TinyMCE!

    (and Win+E actually does "expo" on my desktop....)


  • Discourse touched me in a no-no place

    @Cassidy said:

    Doh! I meant... in TinyMCE!

    Has it never occurred to you to look at the 'documentation'?

    [pjh@thinkpad-pjh tinymce]$ find . | xargs grep addShortcut | awk '{if (length() > 255) getline ; else print}' | sed "s/^.*t.addShortcut.'//g" | sort -u
    ctrl+7', '', ['FormatBlock', false, 'p']);
    ctrl+7', '', ['FormatBlock', false, 'p']);
    ctrl+8', '', ['FormatBlock', false, 'div']);
    ctrl+8', '', ['FormatBlock', false, 'div']);
    ctrl+9', '', ['FormatBlock', false, 'address']);
    ctrl+9', '', ['FormatBlock', false, 'address']);
    ctrl+b', t.getLang('bold_desc'), 'Bold');
    ctrl+b', t.getLang('bold_desc'), 'Bold');
    ctrl+' + i, '', ['FormatBlock', false, 'h' + i]);
    ctrl+' + i, '', ['FormatBlock', false, 'h' + i]);
    ctrl+i', t.getLang('italic_desc'), 'Italic');
    ctrl+i', t.getLang('italic_desc'), 'Italic');
    ctrl+u', t.getLang('underline_desc'), 'Underline');
    ctrl+u', t.getLang('underline_desc'), 'Underline');
    ctrl+y', t.getLang('redo_desc'), 'Redo');
    ctrl+y', t.getLang('redo_desc'), 'Redo');
    ctrl+z', t.getLang('undo_desc'), 'Undo');
    ctrl+z', t.getLang('undo_desc'), 'Undo');
    [irrelevant stuff snipped]
    [pjh@thinkpad-pjh tinymce]$
    

    Or, in the form of a list not found in the user documentation as it should be:

    • Ctrl+1 through Ctrl+6 -> <h1> -> <h6>
    • Ctrl+7 -> <p>
    • Ctrl+8 -> <div>
    • Ctrl+9 -> <address>
    • Ctrl+b -> <b>
    • Ctrl+i -> <i>
    • Ctrl+u -> <u>
    • Ctrl+z/Ctrl+y -> Undo/redo
    • Anything else the person implementing it chooses to add via custom shortcuts.


  • @veggen said:

    @fterfi secure said:
    They will always be less usable than an equivalently well-designed graphical interface by their very nature.
    I'm not a huge fan of CLIs, but.... how do you script something unless it has a CLI?
    This is a common misconception based on the UNIX concept that a script execution engine can also be a shell.  As a counter-example, Microsoft has a script engine named "WSCRIPT.exe" that is a pure GUI application.  It is certainly true that most script engines have a command line mode, but certainly not all and it is certainly not a requirement.



  • @Jaime said:

    @veggen said:
    @fterfi secure said:
    They will always be less usable than an equivalently well-designed graphical interface by their very nature.
    I'm not a huge fan of CLIs, but.... how do you script something unless it has a CLI?
    This is a common misconception based on the UNIX concept that a script execution engine can also be a shell. As a counter-example, Microsoft has a script engine named "WSCRIPT.exe" that is a pure GUI application. It is certainly true that most script engines have a command line mode, but certainly not all and it is certainly not a requirement.

    There's also this thing called "recording macros" you may have heard of.

    WTF? Is there anybody in this forum who's actually used a computer in the last 20 years? "Derp derp how do you script without a CLI derp herp herp!" Gee, I dunno, maybe the way we were doing it in fucking Microsoft Works fucking 20 years fucking ago you unimaginative bastard? How the fuck did we go 6 posts before someone said "macros"?

    The great thing about AppleScript is that your macro recording (WHICH BY THE WAY IN CASE YOU DIDN'T GET THE MEMO DOESN'T INVOLVE A CLI AT ALL) worked OS-wide, not just in a single application or single office suite.



  •  @dhromed said:

    @tdb said:
    I'm going to recommend
    Thanks, bro.
    Btw, I was in your shoes a while back and what I found out was that there's a serious lack of expansive online tutorials on the subject. I don't know why, they are a dime a dozen for other major technologies, but OpenGL is like some sort of closely guarded mystical knowledge known only to the elders of some secretive ancient society living in a monastery on the peak of some inaccessible uncharted mountain waiting for the return of the Chosen One.

    In the end I just gave up and after several recommendations by SO shelled out for the OpenGL Superbible. Pompous name aside it's very good at explaining the basic concepts and you really want to understand that stuff before you start putting things together. That said its tutorials depend on a set of (free) tools, published by the author, that you have to work with at first. It's annoying, but from I can tell they're there to take care of the underlying grunt work in order for you to focus on OpenGL.

     



  • @dhromed said:

    @fterfi secure said:
    They will always be less usable than an equivalently well-designed graphical interface by their very nature.

    That is not necessarily true. The CLI is a human-invented system. It has no fundamental truth, no inherent properties and is entirely malleable. It's a thing we invented that we call a certain name we invented. It has no nature.

    I suspect we're just arguing semantics here, but I have to disagree. And I have to do it without getting into irrelevant philosophy, either.

    Whether or not CLI is a term defined by humans, it describes a certain thing/idea. Without changing that definition, there are simple limits on what can be considered a CLI. If it's mouse-and-graphics-based, for example, it's plainly not a CLI.

    @dhromed said:

    @fterfi secure said:
    there's nothing you can do to a command line which will be a significant improvement and not make it something other than a command line
     

    What's the problem? "The CLI" is not a thing that exists per se. It's just one beaten path of computer interfaces.

    That's not a problem. It's just where you and I disagree with Blakey.



  • @fterfi secure said:

    It's just where you and I disagree with Blakey.
     

    But... I agree with Blakey.



  • @dhromed said:

    @morbiuswilters said:

    If I can just tell my computer what I want to do in natural language and have it do it, then I wouldn't classify it as a CLI, even if the commands are typed in.
     

    That's pretty arbitrary.

    Aren't most definitions? We have to draw a line somewhere.



  • @dhromed said:

    @fterfi secure said:

    It's just where you and I disagree with Blakey.
     

    But... I agree with Blakey.

    Does that mean I do as well? I'm really confused now.



  • @veggen said:

    @morbiuswilters said:
    Once again, Facebook appears to have dropped Cassandra

    In favor of HBase. Another Java product.

    Which I already pointed out. Additionally, the fact that Facebook uses server software written in Java is not automatic proof that Java doesn't suck. No more than MySQL is proof that C++ doesn't suck.

    @veggen said:

    At last, why do I get labeled as fanboy if I try to defend something that is cool to hate?

    Stop it with the persecution complex, it's a goddamn language. A dated, verbose, anti-pattern-encouraging language.



  • @fterfi secure said:

    Does that mean I do as well?
     

    I think you do, but I think you got caught up in a namegame which I didn't think important but you did.



  • @morbiuswilters said:

    Aren't most definitions? We have to draw a line somewhere.
     

    Wait, I thought I was arguing in favour of broad definitions.

     

    I get the sinking feeling that we all agree here.



  • @dhromed said:

    Wait, I thought I was arguing in favour of broad definitions.

    You are. I'm arguing in favor of narrow definitions. The broader the definition, the less meaningful it is. Then people have to tack all sorts of adjectives on just so they know what you're talking about.



  • @morbiuswilters said:

    Stop it with the persecution complex, it's a goddamn language. A dated, verbose, anti-pattern-encouraging language.
     

    Not entirely accurate. It is an aging language (which saved many people plenty of time during its lifetime), but it is also more importantly a platform, like .NET is. A platform on which new 'java killer' languages are sprouting almost daily, there is bound to be one among them that suits your needs. Whatever you have to complain about the Java language, the most important piece of the puzzle is still the JVM. And that is a piece of machinery I have learned to love. I don't care what language I use (Java, Groovy, Scala, Ceylon, whatever), as long as my faithful friend is there to support my efforts, I'm happy.

    And we've also be blessed with JavaFX 2, which is bound to turn around the face of Java client side application development especially because Oracle has its sights set on mobile platforms such as Android as well (but not until JavaFX 3 next year). The API is already very stable and the tooling is getting up to speed. Halway through this year Oracle is also going to move the Java *platform* to Macs under their support, which is going to be a breath of fresh air IMO.

    Nope, Java the *platform* is still cool and will only get better. Whatever opinion you have on the language is of course your own; everyone has a favorite screwdriver; me personally I don't discard tools just because they're a bit dusty.



  • Pretty much all the complaints I have against Java are the JVM.



  • @blakeyrat said:

    Pretty much all the complaints I have against Java are the JVM.

    I would extend that statement to make sure that it included how the JVM influenced the language, but yes, the JVM is the worst part of java.



  • @PJH said:

    Has it never occurred to you to look at the 'documentation'?

    [pjh@thinkpad-pjh tinymce]$ find . | xargs grep addShortcut | awk '{if (length() > 255) getline ; else print}' | sed "s/^.*t.addShortcut.'//g" | sort -u
    

    How do you do that without a CLI? Using the "search" box in Finder/Explorer? Good luck with that!


  • Discourse touched me in a no-no place

    @Zemm said:

    How do you do that without a CLI?
    Why would you want to?



  • @blakeyrat said:

    Pretty much all the complaints I have against Java *are* the JVM.
     

    I'm curious what the issues are but I really don't want this thread to turn into a battle of wits, I tend to lose those. Of course I'm not blind, I know that things are far from perfect. Installation of the runtime tends to be hairy deal and I do know that for example deployment of Java applications can be a less than fun exercise in patience and unnecessary effort. That falls in the line of "nice tries, but epic fail" that Sun has attempted over the years; Java Webstart, Swing and hacking hardware acceleration into Java2D being the three primary targets there.

    So lets just state that I'm a weirdo that happens to benefit from Java development and usage, and there are plenty of people out there who do not agree with me. Its something I have to live with for now, I can only hope Oracle turns some things around in stead of making them worse. JavaFX 2 and official Mac support are large steps in the right direction so I'm positive - but with reservations of my own.



  • @erikal said:

    I'm curious what the issues are

    To give one example, my thread on Eclipse contains a lengthy discussion that results in the conclusion that JVM's implementation of named folders on Windows is entirely wrong, not only is it entirely wrong now in 2012, but it was entirely wrong when the JVM was released in 1995 and has never been fixed.



  • @erikal said:

    So lets just state that I'm a weirdo that happens to benefit from Java development and usage

    <AOL> there. Has to be said, learning Java improved my JS skills and shaped my approach to PHP coding - and made RUP/UML a lot easier to understand - moving me more into software engineering (from coding).

    @blakeyrat said:

    To give one example, my thread on Eclipse contains a lengthy discussion that results in the conclusion that JVM's implementation of named folders on Windows is entirely wrong, not only is it entirely wrong now in 2012, but it was entirely wrong when the JVM was released in 1995 and has never been fixed.

    Ohhh.. I remember that one (I looked up corn dogs as a result of that). Damned good incident report, impressive.

    Did you finally give Aptana another go in the end, or stick to your "I ain't risking it, chum" guns?



  • @Cassidy said:

    Did you finally give Aptana another go in the end, or stick to your "I ain't risking it, chum" guns?

    I don't think there would be a point. Aptana did have better JavaScript intellisense, but it's not that much better than Visual Studio to be worth the headaches. Maybe if there's a new release of Aptana. Maybe.



  • @blakeyrat said:

    @erikal said:
    I'm curious what the issues are

    To give one example, my thread on Eclipse contains a lengthy discussion that results in the conclusion that JVM's implementation of named folders on Windows is entirely wrong, not only is it entirely wrong now in 2012, but it was entirely wrong when the JVM was released in 1995 and has never been fixed.

     

    True, the named folders are a platform specific thing and Java doesn't do platform specific things - at least not well. That has always been a misunderstanding among many beginning Java developers and one of the reasons Java client application development has always been a bit of a misery. Don't expect that platform specific shit to work or even be possible if you use Java. If you need Windows specific stuff, use Microsoft tools. But again: I wonder what JavaFX 2 brings there as it is far more aligned with the platforms it supports. But that is all API related stuff, it has little to do with the actual JVM by the way :)

    Most of that thread is about Eclipse by the way and I've had a long history of moaning about it. Until two things happened.

    • I started to use Eclipse 3.7, which is remarkably stable, fast and uses very little resources compared to its ancestors.
    • I took the time to learn how the plugins I was using actually function, which in turn made me realize I was doing it wrong and was blaming the IDE for my own stupidity.

    Know the tools you work with and all that. Eclipse will never be perfect as it is basically put together by hundreds of third parties; to me it is the definition of automated chaos. But since Eclipse 3.7, it is certainly good enough for my purposes (game development, client side tool development, enterprise development).



  • @erikal said:

    True, the named folders are a platform specific thing and Java doesn't do platform specific things - at least not well. That has always been a misunderstanding among many beginning Java developers and one of the reasons Java client application development has always been a bit of a misery. Don't expect that platform specific shit to work or even be possible if you use Java. If you need Windows specific stuff, use Microsoft tools.

    This paragraphs sums up to: every Java application built for Windows is broken, and don't expect that situation to ever change.

    And somehow you're still here singing its praises.

    I'm sorry, my standards aren't as low as yours.

    @erikal said:

    I took the time to learn how the plugins I was using actually function, which in turn made me realize I was doing it wrong and was blaming the IDE for my own stupidity.

    Yeah, well, I'm pretty sure I'm not to blame for the IDE creating a denial-of-service attack on my Roaming AppData folder. Especially since it did that before I could even open a single file in the stupid thing.



  • @erikal said:

    True, the named folders are a platform specific thing and Java doesn't do platform specific things - at least not well. That has always been a misunderstanding among many beginning Java developers and one of the reasons Java client application development has always been a bit of a misery. Don't expect that platform specific shit to work or even be possible if you use Java.
     

    The language is supposed to be platform-independent. The Windows JVM is supposed to be platform-specific, and it should do Windows-specific things correctly. You seem to be suggesting that people should just be willing to accept that it doesn't. That attitude is why it's still broken.



  • @Cassidy said:

    Has to be said, learning Java improved my JS skills and shaped my approach to PHP coding...

    Okay, I can see how Java could influence your approach to PHP since PHP 5 is basically becoming a dynamically-typed Java. But JS? WTF does Java have to teach you about JS?



  • @morbiuswilters said:

    But JS? WTF does Java have to teach you about JS?

    Appreciation for it?



  • @morbiuswilters said:

    WTF does Java have to teach you about JS?
     

    { and }.



  • @morbiuswilters said:

    WTF does Java have to teach you about JS?
     

    The source of all the useless reserved words that don't do anything in JavaScript.



  • @Someone You Know said:

    @morbiuswilters said:

    WTF does Java have to teach you about JS?
     

    The source of all the useless reserved words that don't do anything in JavaScript.

    For example? Not that I doubt you, I just wasn't aware there were reserved words from Java in JS.



  • @morbiuswilters said:

    For example? Not that I doubt you, I just wasn't aware there were reserved words from Java in JS.

    Clicky

    Looks like everything in the second set, and most of the third set, are Java keywords.

    IE/Visual Studio flags "set" as a reserved keyword, I'm not entirely sure why. I need to look into that. EDIT: Dojo ShrinkSafe also treats "set" as a reserved keyword. Nothing else I can find does... even including MSDN. Hm.



  • @morbiuswilters said:

    @Cassidy said:
    Has to be said, learning Java improved my JS skills and shaped my approach to PHP coding...

    Okay, I can see how Java could influence your approach to PHP since PHP 5 is basically becoming a dynamically-typed Java. But JS? WTF does Java have to teach you about JS?

    Perhaps I should have s/Java/OOP/, really - Java was my first taste of OO and it deepened my understanding of the intrinsic objects in Javascript, appreciation of encapulation (although I'd been doing this during functional programming, I didn't consider it at object level) and some other oddities of the syntax that I didn't understand from my functional-programming days.

    Other concepts - such as interfaces, abstract classes, static/final etc - have changed the way I view code, but as mentioned before... .net or some other OO framework could have done the same thing.



  • @blakeyrat said:

    @morbiuswilters said:
    For example? Not that I doubt you, I just wasn't aware there were reserved words from Java in JS.

    Clicky

    Looks like everything in the second set, and most of the third set, are Java keywords.

    "export" definitely isn't Java. And from the description, it looks like import has a different meaning in JS than in Java. Also, class and enum are from C++.



  • @Cassidy said:

    Perhaps I should have s/Java/OOP/, really - Java was my first taste of OO and it deepened my understanding of the intrinsic objects in Javascript, appreciation of encapulation (although I'd been doing this during functional programming, I didn't consider it at object level) and some other oddities of the syntax that I didn't understand from my functional-programming days.

    There's nothing wrong with that, just realize that Java is not synonymous with OO. Javascript has its own way of doing OO and I think it's important to not get stuck in the Java way of thinking about OO.

    @Cassidy said:

    Other concepts - such as interfaces, abstract classes, static/final etc - have changed the way I view code, but as mentioned before... .net or some other OO framework could have done the same thing.

    Those are useful ideas in Java/whatever, but I've mostly come to think of them as limitations imposed by the language rather than features of OO.



  • @blakeyrat said:

    IE/Visual Studio flags "set" as a reserved keyword, I'm not entirely sure why. I need to look into that. EDIT: Dojo ShrinkSafe also treats "set" as a reserved keyword. Nothing else I can find does... even including MSDN. Hm.
    I've seen set used in batch files that are actually jscript, used somewhat like this:

    @set x=1/*
    @cscript %0 //E:JScript //Nologo
    @goto end
    */
    [js code here]


  • @morbiuswilters said:

    @Someone You Know said:

    @morbiuswilters said:

    WTF does Java have to teach you about JS?
     

    The source of all the useless reserved words that don't do anything in JavaScript.

    For example? Not that I doubt you, I just wasn't aware there were reserved words from Java in JS.

     

    Blakey beat me to it, but particularly bad examples are the keywords associated with Java's inheritance model (implements, extends, interface) when JavaScript has a radically different inheritance model that does not really have direct analogs for these things.

    The list Blakey posted is actually the trimmed down version; if I recall correctly, earlier versions of the ECMAScript standard considered pretty much all of Java's keywords to be reserved words, including the names of primitive types like "int". JavaScript doesn't even have an integer type.

    @morbiuswilters said:

    Also, class and enum are from C++.

    These are both also Java keywords, which is where JavaScript borrowed them from, though "enum" is a relatively new addition to Java.

     



  • @Someone You Know said:

    @morbiuswilters said:

    Also, class and enum are from C++.

    These are both also Java keywords, which is where JavaScript borrowed them from, though "enum" is a relatively new addition to Java.

    Right, which was my point: the reserved keywords aren't necessarily all from Java. And as you point out, enum wasn't added to Java until 2004 so it seems unlikely JS gets the keyword from Java.



  • Morbs I don't remember having you flagged as a pedantic dickweed in my mental file, so I must say this thread is depressing me.



  • @blakeyrat said:

    This paragraphs sums up to: every Java application built for Windows is broken, and don't expect that situation to ever change.

    And somehow you're still here singing its praises.

    I'm sorry, my standards aren't as low as yours.

    No. It sums up to: if you judge a fish by its ability to climb a tree, it will live its whole life believing that it is stupid (Einstein). If you judge Java by it's platform-specific features, it's not about low standards, but about wrong standards.


  • @veggen said:

    No. It sums up to: if you judge a fish by its ability to climb a tree, it will live its whole life believing that it is stupid (Einstein).

    That's stupid, I've spent my whole life believing that I'm stupid and nobody's ever told me a climb a tree. Or that I'm a fish. They usually just shake their heads and walk away.

    @veggen said:

    If you judge Java by it's platform-specific features, it's not about low standards, but about wrong standards.

    Cross-platform GUI programs is WHAT IT WAS BUILT TO DO!



  • @Someone You Know said:

    The Windows JVM is supposed to be platform-specific, and it should do Windows-specific things correctly.

    The JVM has nothing to do with this — this is a problem with the Java SE API's implementation (and possibly the definition, too).



  • @blakeyrat said:

    That's stupid, I've spent my whole life believing that I'm stupid and nobody's ever told me a climb a tree. Or that I'm a fish. They usually just shake their heads and walk away.

    :D
    @blakeyrat said:
    Cross-platform GUI programs is WHAT IT WAS BUILT TO DO!

    What? Where did you get that? You could say Swing was built for that, but Java... not so much. Could it be that you actually dislike Swing?

    I, for one, would hardly decide to build a desktop app in Java.


Log in to reply