Announcing: Slashdot Deals - Explore geek apps, games, gadgets and more. (what is this?)

Thank you!

We are sorry to see you leave - Beta is different and we value the time you took to try it out. Before you decide to go, please take a look at some value-adds for Beta and learn more about it. Thank you for reading Slashdot, and for making the site better!



How Regulations Hamper Chemical Hobbyists

MasterC Re:while historical chemical advances (610 comments)

Hobbyists ... don't have to satisfy funding agencies or pragmatic concerns.

You must not be married.

more than 6 years ago

Firefox Gets Massive JavaScript Performance Boost

MasterC Performance is great and all (462 comments)

I've written my share of JS-heavy apps and the boost will be nice for that. However, my complaints with JS don't lie with performance.

  • Tied too much to the browser. JS works great for some (some love it) but syntactically I hate every last part of it. However: web == JS so I have no other option.
  • Typing. Yeah, it has types but they're practically worthless. A Number represents a float/double and an integer? Say what?
  • Type checking.
  • No reflection.
  • No dictionary. Sure, you can use an Object as a dictionary but the second someone prototypes it to add root functionality then you've introduced other items in your "dictionary". (I'm looking at you prototype.js)
  • Nothing resembling libraries. No dependencies, etc.
  • It's bastardized to accommodate the short comings of HTML (drop downs, combo boxes, etc.)
  • Obey's Postel's law too much. Error handling and exceptions is a sad state.
  • No threading. No locking. Nothing resembling concurrent programming. The more complicated your app the more arbitrary events and multithreading are important.
  • No classes. Prototyping & cloning is a neat paradigm for where it fits but so do class-based objects. This isn't just JS I have this problem with. Being able to do both and using the right one where necessary would be great.
  • When is the document loaded? And if you have two libraries vying for that event? (See library complaint)
  • Since it has no real library support I have to blame the browser for not providing more general functionality. XML parsing, date stuff is abysmal, and other "routine" stuff you do when making web sites.
  • Scoping. Scoping is mind-numbingly bad.
  • Namespaces (again, see library complaint) are implemented via object nesting, which isn't really namespaces
  • Logging and debugging. I haven't delved into the likes of Firebug to see how it works but when the language (again no libraries so I blame the language) itself only provides alert() then it's clear the creators weren't thinking about debugging at all. At least IE natively will let you debug JS!
  • Standard dialogs are alert() and confirm(). Anything and everything else you have to roll your own. I really, really don't want to write something for a Yes/No dialog instead of OK/Cancel confirm().
  • Drag-and-drop. If you've done it then you know it's no walk in the park.
  • Browser identification and JS version identification. Why should I have to jump through hoops, poke & prod things, and guess at what my JS run-time is? Everyone has their own means to detect it and it's absolutely ludicrous. I'm fine if there's no real "standard" but at least give me the variables to know what I'm writing against so I can adequately work with it. (Again tied too close to the browser.) Every language I use frequently has means for me to identify such things.

I think that's enough. I'm sure you could easily argue back but this is my rant about why this boost is not the saving grace to JavaScript.

Basically my point is that performance does not bring JS up another tier. It just prolongs the pain of having a grossly inadequate language for rich application development. JS does have some nice things about it (first-class functions, closures, for(..in..), etc.) but in no way would I consider it "good" for application development.

Step back and realize the movement is pushing applications into the browser. Yes, the same apps that currently use threading; the same apps that have more than 4 input widgets (input, select, radio, checkbox); the same apps that run slow even when written in native code; the same apps that depends on libraries of code; etc. JavaScript, as is, is not The Answer and this performance boost is just a Bluepill in disguise.

more than 6 years ago


MasterC hasn't submitted any stories.


MasterC has no journal entries.

Slashdot Login

Need an Account?

Forgot your password?