July 5, 2006

Language Wars:
Thou are Holier than thee

I mentioned in one of my JavaScript posts that future iterations of that language would be picking up noteworthy features from other languages, like generators and iterators.

This, of course, further confirms that programming languages (and their underlying concepts) are, by and large, separated mainly by different holy books, priestly rites, and
religious practices - and they all promise essentially the same thing; except they're not the same.

I recently came across an amusing article on the topic:
the Semicolon Wars. Its (reasonably) accessible to the uninitiated, but with enough meat to make it fun for the ponytail-and-sandals set (you know who you are :P).

Enjoy.

13 comments:

Dossy said...

"[...] the ponytail-and-sandals set (you know who you are :P)"

Those are pretty big words coming from the uber-preppy camp. :-)

Dossy said...

Back to your original point, eventually seasoned programmers stop arguing syntax (sigh, boring) and instead argue semantic capabilities of programming languages. i.e., which languages support a proper mapping operator vs. which ones don't, and why the former are necessarily superior. c.f. Iterators: Signs of Weakness in Object-Oriented Languages

Sree Kotay said...

dossy - "uber-preppy" OOOOOUUUUcccchhh; doesn't code-slinging get me a little slack? :P

In terms of the iterator paper - yeah, co-routines are the schnizzle; I hadn't seen that article, and I largely agree - I've never been a big iterator fan. The move from "generators" to "iterators" in modern programming was a backslide IMHO.

The move to co-routines is a good generalization in the right direction, though asynchronous programming (events, threads, network i/o), etc. is still MUCH harder than it should be in most every language.

The closest solve I've seen has been with Finite State Machine lanuages, and Functional programming generally - but its really hard for developers to get their heads around it. There's a reason imperative programming styles are more broadly used.

jdzik said...

Hmm... If your point is that different programming languages are fundamentally the same, I have to disagree.

I wouldn't want to build an OS with Javascript, wouldn't want to build a device driver with Java, and wouldn't want to build a lightweight web app with C. And I wouldn't want to build anything with a monster language like Ada - languages that are designed to fix every problem generally fail to be ideal for any problem.

There are fundamental differences in the philosophies behind these languages, and fundamental differences in the tasks to which they are best suited.

Sree Kotay said...

C'mon - You wouldn't want this?

Actually, I'd argue those are NOT language differences, but "execution context" differences. How would scripted C for web apps or compiled JS (with appropriate OS bindings ala ANSI lib stuff) be different, other than your comfort level?

I'm grossly oversimplifying of course (this is a blog, after all, not any form of reality :)) but I do think folks tend to unnecessarily conflate languages and their execution environments - sometimes for good reason, but mostly not.

That said, .NET tried to actually apply this philosophy, with mixed results.

There was a time when one couldn't imagine applications written in markup, either.

My point was that languages, in general, don't enable different capabilities - they enable ease of learning, scalability, and better maintenance/extension. The other stuff really is independent of the "language".

That said, .NET tried to actually apply this philosophy, with mixed results.

Dossy said...

Sree, they still let you write code? If that's true, we should get you some sandals. :-)

It'll be a sad day when the closest you come to code is cutting and pasting snippets into a Powerpoint deck.

At least it seems we agree on something: the interesting discussions revolve around capabilities, not syntax.

jdzik said...

Some various real differences between languages, that make them appropriate for different applications:

- Javascript supports self-modifying code. This is useful and powerful in a web app, but would be really painful in an OS, whether the language itself is scripted or compiled.

- Java has the basic philosophy of making things easier and less prone to error for the programmer, even at the expense of level of control over the environment or optimized performance. Several language features illustrate this philosophy. One example is that array bounds checking is always done when you reference an array element. If you have to do a pedal-to-the-metal application where complete control over the hardware environment is crucial, and you have to squeeze every last cycle from your hardware, you should not use Java.

- Some languages provide direct support for object orientation. I've done object-based programming in C - it is nowhere near as flexible as true object orientation in C++. If you're going to build an app where object orientation is a reasonable fit (e.g., ones heavy on user interface objects), then you'll be better off with a true OO language than one where OO has to be shoehorned in.

- Some languages provide solid support for large scale projects. These features include the classes of the object oriented languages, or the modules in languages like Modula2 and Ada. Writing a simple program in such a language is painful, because there's too much overhead. But if you are building truly large scale systems, those features are invaluable.

- None of this addresses the non-procedural languages. I'd much rather write database queries in SQL than C. And functional languages like APL, rule-based languages like Prolog, or imperative languages like Euclid all have their place, but that place is not going to be where you'll find most C, Java, and Javascript applications live.

Can you write any program in any language. Well, sure - pretty much all of these languages are Turing complete. But just because you can write a Turing machine to do anything, doesn't mean that it's going to be the best language for any particular application.

Anonymous said...

runescape money runescape gold runescape money runescape gold wow power leveling wow powerleveling Warcraft Power Leveling Warcraft PowerLeveling buy runescape gold buy runescape money runescape items runescape gold runescape accounts runescape gp dofus kamas buy dofus kamas Guild Wars Gold buy Guild Wars Gold runescape accounts buy runescape accounts runescape lotro gold buy lotro gold lotro gold buy lotro gold lotro gold buy lotro gold lotro gold buy lotro gold runescape money runescape power leveling runescape money runescape gold dofus kamas cheap runescape money cheap runescape gold Hellgate Palladium Hellgate London Palladium Hellgate money Tabula Rasa gold tabula rasa money 陈楚生 压力开关 压力传感器 流量开关 流量计 液位计 液位开关 温湿度记录仪 风速仪 差压开关 可燃气体检测仪 过滤器 强磁水处理器 自清洗过滤器 自动反冲洗过滤器 保鲜棕榈树 棕榈树

runescape gold said...

runescape money runescape gold runescape gold runescape money buy runescape gold buy runescape money runescape money runescape gold wow power leveling wow powerleveling Warcraft Power Leveling Warcraft PowerLeveling buy runescape gold buy runescape money runescape itemsrunescape accounts runescape gp dofus kamas buy dofus kamas Guild Wars Gold buy Guild Wars Gold lotro gold buy lotro gold lotro gold buy lotro gold lotro gold buy lotro gold runescape money runescape power leveling runescape money runescape gold dofus kamas cheap runescape money cheap runescape gold Hellgate Palladium Hellgate London Palladium Hellgate money Tabula Rasa gold tabula rasa money Tabula Rasa Credit Tabula Rasa Credits Hellgate gold Hellgate London gold wow power leveling wow powerleveling Warcraft PowerLeveling Warcraft Power Leveling World of Warcraft PowerLeveling World of Warcraft Power Leveling runescape power leveling runescape powerleveling eve isk eve online isk eve isk eve online isk tibia gold Fiesta Silver Fiesta Gold




runescape money runescape gold wow power leveling


棕榈树
VI设计
画册设计
血管瘤
肝血管瘤
音乐剧
福卡
防静电地板
美国留学
留学美国
电阻器
不锈钢电阻器
频敏电阻器

睡眠呼吸机
伟康呼吸机
呼吸机
无创呼吸机
家用呼吸机
呼吸机的使用

北京消化系统疾病
北京心脑血管疾病
北京肾病
北京中医儿科
北京针灸减肥
针灸减肥
北京糖尿病
北京疼痛病
北京类风湿

enjoygame001 said...

runescape accounts
cheap runescape gold
buy runescape gp
sell runescape coin

runescape items
cheap runescape money
buy runescape gp
sell runescape coin

mabinogi gold
mabinogi money
mabinogileveling
mabinogi power leveling

mabinogi power leveling
mabinogi gold

小姐 said...

情趣用品,情趣用品,情趣用品,情趣用品,情趣,情趣,情趣,情趣,情人歡愉用品,情惑用品性哥,情人用品性哥,情趣用品,AIO交友愛情館,情人歡愉用品,美女視訊,情色交友,情人用品性哥,視訊交友,辣妹視訊,美女交友,性愛,嘟嘟成人網,按摩棒,震動按摩棒,微調按摩棒,情趣按摩棒,逼真按摩棒,G點,跳蛋,跳蛋,跳蛋,性感內衣,飛機杯,充氣娃娃,情趣娃娃,角色扮演,性感睡衣,後庭區,SM,潤滑液,情趣禮物,威而柔,香水,精油,芳香精油,自慰,自慰套,性感吊帶襪,情趣用品加盟,情人節禮物,情人節,吊帶襪,辣妹視訊,美女交友,情色交友,成人交友,視訊聊天室,美女視訊,視訊美女,情色視訊,免費視訊聊天,視訊交友,視訊聊天,AIO交友愛情館,嘟嘟成人網,成人貼圖,成人網站,AIO交友愛情館,情色,情色貼圖,情色文學,情色交友,色情聊天室,色情小說,七夕情人節,色情,A片,A片下載,免費A片,免費A片下載,情色視訊,情色電影,色情網站,辣妹視訊,視訊聊天室,情色視訊,免費視訊聊天,視訊聊天,美女視訊,視訊美女,美女交友,美女,情色交友,成人交友,自拍,本土自拍,情人視訊網,視訊交友90739,生日禮物,情色論壇,正妹牆,正妹,成人網站,A片,免費A片,A片下載,免費A片下載,AV女優,成人影片

Charmingirl said...

Wholesale lingerie directly from China?
As a famous brand and specialized manufacturer of sexy clothing in China. Charmingirl supply the international market with fashionable sexy lingerie and sexy costume since 2002. With advanced technology,all our products are of high quality. Now we have clients all around the world. Lingerie Wholesale and OEM are welcomed!
As a Lingerie Manufacturer, Charmingirl has standard workshop and production line, professional designers and experienced workers.
We do Wholesale Underwear,
Lingerie Wholesale, including corset and bustier,
Sexy Lingerie Wholesale, including bikini, underwear
Lingerie Wholesale, and Babydolls, Sexy Lingerie Wholesale, and
Sexy Lingerie Wholesale including sleepwear,clubwear.
Lingerie Wholesale from China: Lingerie China, you will find the
Leather Lingerie and PVC Lingerie, also you can buy
Christmas Costume and Xmas Lingerie
for your Christmas Lingerie Christmas day.
Our Wholesale center: Sexy Lingerie Wholesale can do Lingerie Wholesale online.
Halloween Costume,
also wholesale Pirate Costume with fashion Babydoll Babydoll, and bra and panties Bra and Panties, Sexy Uniform Sexy Uniform is also our major products.

筱娅 said...

Do you like playing the game where you need to use wow gold, when you do not have World of Warcraft Gold, you must borrow warcraft gold from friends, or you buy wow gold. If you get cheap wow gold, you can continue this game.