Want to Be in a Movie?19 days beforeposter for high expectations movie Have you ever dreamed to be in…
GWT And Now Script#: The Agony of a Thousand Puppies
Layer gaps2023I’ve been writing a bit more code lately, and so you’ll notice…
The cost of opinion2022Below is the reasoning that went into this little ditty. The first…
Uh oh. Another reactive rant. Am I turning into a grumpy old man? This time it’s about layers of abstraction. And Javascript. And the meaning of life. No? Maybe not the meaning of life.
HTML, CSS and Other Curious Stuff That You May Find Hard-coded In Your Web Application2004Design View Dude is asking interesting questions about composing HTML/CSS mark-up in…
Nikhil posted about his new pet project, Script#. Although I had fun reading the article and admiring the work, I am not enthusiastic about the approach. Google had posted their GWT a bit earlier and it evokes a similar reaction from me. Here it is:
Hiding Javascript behind another language’s layer of abstraction is like killing puppies.</strong>
It’s one thing to build a compiler to a language that’s more appropriate for machines. CLR or Assembly ain’t easy to code with for any human being.
But Javascript is a fully-featured, widely used, and beautiful language. Sure, it’s different from C# of Java, but it holds its own rather well. Sure, it lacks strong typing and traditional C++ form of object orientation, but that doesn’t make it less versatile.
The Bogeyman of ASP.NET2004Let me first start by saying that ASP.NET is an awesome framework.…
Why do I think it’s a bad idea? Well, primarily because I get to experience firsthand what layers of abstraction do to code. In ASP.NET, the developers were shielded from needing to learn how Web works — a lot of effort was put in to emulate WinForms. You click a button, and here’s your OnClick handler, voila! Unfortunately, shielding developers from learning the inner workings results in some of the crappiest and undebuggable code you can imagine. Don’t believe me? Check out thedailywtf.com. Or go look into the vast repositories of code, written for ASP.NET. I know, I am making a non-verifiable statement here, but hey, it’s my frikin blog.
In the comments to Nikhil’s article, there are sentiments to keep the Morts in the loop. One of the users is worried poor slobs won’t be able to keep up with yet another language that they need to learn.
What the Heck is Shadow DOM?2011If you build Web sites, you probably use Javascript libraries. If so,…
I have a very simple answer to this: if you can’t handle Javascript, you shouldn’t be writing code for Web applications. HTML, CSS and Javascript are the three prerequisites for this ride.
AI Baklava2024So we come up with ways to break software into smaller chunks…
And to those of you who do know all three, please, let’s stop proliferation of poorly-drawn boundaries in layers of abstraction. If you need futher motivation, just realize that you will be debugging that insanity, written without understanding how things really work.
ECMAScript 4 on the Server2007Let’s imagine there is a viable, publicly available ECMAScript4 (that’s Javascript 2.0,…
So, where do we draw the boundaries? Well, for starters, not across the languages. I totally don’t mind a Javascript 2.0 compiler that produces common Javascript 1.4. I don’t mind seeing a CLR implementation of Javascript (not the JScript.NET, of course). I don’t mind a powerful JS toolkit. Anything that flows along the lines of the Web style is great.
Party Like it’s 1997: The Curse of the Back Button2005The issue was further complicated when the XMLHttpRequest capabilities were introduced. With…
Off To Netsquaredfour days afterEarly Monday morning, I’ll be flying to San Jose, to join the…
The Perspective Ladderlinks here, 2022At least for me, this rung serves as sort of a defensive…
Development environment for rapid experimentationlinks here, 2023After picking the environment, I wasted a bunch of time resisting TypeScript.…
But please, pretty please, don’t repeat the disasterous attempts to “simplify” the Web by allowing only one form element per page (which has to post to itself!) or requiring Javascript for the framework to react to a link click. Please? For the puppies?
Show 4 comments
noah · August 12, 2008
I have to disagree with you on two things:
1) “…Javascript is a fully-featured, widely used, and /beautiful language/…” (emphasis mine)
The reason for this project is precisely because not everybody believes this. By introducing variable types into Javascript (well, not really into JS but into C#) we can limit some of the issues we run into with loosely typed objects. This is only one of many enhancements that C# provides over JS and why C# makes for a “better” coding experience and helps one build less buggy software.
2) …”because I get to experience firsthand what layers of abstraction do to code.”
I have only one response for this: “guns don’t kill people, people kill people.” This is the IDE vs Notepad argument… Are there a lot of crappy programmers out there? Sure? Do IDEs make them bad? No! Yes, I learned to code in Notepad. No, I don’t want to do that on a daily basis. The IDE makes my life a whole lot easier.
ASP.NET introduced the great time saver that is ViewState, but “with great power comes great responsibility”. To label abstraction evil instead of labeling teachers who only teach on the top level of abstraction bad is ridiculous.
Andrew Golik · November 29, 2009
Completely agree, you can’t do a lot with such kinda of frameworks(GWT, script#). People that consider them as cure are without enough understanding of javascript itself. Furthermore, there are lot of benefits of using dynamic typed languages(ruby, php, smalltlalk .etc).
I’m developer that use both dynamic and strong types languges and I have to say that somehow the flow of dynamic languages is much faster. Things are just done in more expressive manner and with less coding.
The Perspective Ladder – Dimitri Glazkov linked here · September 18, 2022
[…] to find me. I’ve been looking for a sample of my writing at this rung of the latter and the Agony of a Thousand Puppies comes pretty […]
Development environment for rapid experimentation – Dimitri Glazkov linked here · June 5, 2023
[…] environment, I wasted a bunch of time resisting TypeScript. As a Javascript old-timer and a known build step grump, I really didn’t want to like it. But after getting over my hang ups, I must admit: TypeScript is […]