Feeds

back to article GNOME project picks JavaScript as sole app dev language

The GNOME project, developers of the GNOME desktop for Linux, has decided JavaScript will be the only “first class” language it will recommend for developers cooking up new apps for the platform. Developer Travis Reitter, who does some work on GNOME, has posted his account of a discussion at last weekend's GNOME Developer …

COMMENTS

This topic is closed for new posts.

Page:

Silver badge
Devil

At first I thought the calendar is wrong

My first thought was that it is already April, the first to be more exact. However on a second thought, I remembered - this is GNOME.

Whatever idiocy Microsoft does, GNOME follows drooling on the way. Microsoft promoted C# so did GNOME (its rather crippled alternative implementation). Microsoft decided that C# is no longer for the cool kids. Well so does GNOME.

In any case being an uncool kid I am going to stick to C, C++, Python and Perl. Curly bracket language which is the assembly of the Internet? No thanks.

54
2

Re: At first I thought the calendar is wrong

I presume this is going to be exactly like the C# episode. Much talk but everyone who matters keeps writing in C.

17
1
Thumb Up

Re: At first I thought the calendar is wrong

Keeps writing in C... or switches to a different framework - probably Qt. The fact that the Qt framework code compiles and runs fine in Windows is a double-plus. The licensing restrictions and ownership are the main barriers to entry.

4
0
Silver badge

Re: At first I thought the calendar is wrong

What licensing restrictions? Qt has been GPL for years now.

6
0
Stop

Re: At first I thought the calendar is wrong

It's actually LGPL on all platforms now.

4
0

Re: At first I thought the calendar is wrong

When I find myself in times of trouble,

Uncle Ritchie comes to me,

speaking words of wisdom -

Write in C

20
0
Joke

la la la la la la la

*fingers in ears* - la la la la la la.

http://graiae.files.wordpress.com/2012/03/chimpanzee-with-its-fingers-in-its-ears1.jpg

// this is how we do things in gnome land

var gnome = "ignored";

while (gnome = "ignored") {

document.write("la la la la la la");

}

0
0
Thumb Down

Re: la la la la la la la

Warning: assignment in while condition at line 3

4
1
Silver badge
WTF?

After all this time

Learning my way around the Gnome code in C...

Meh

0
0
Silver badge
Windows

Another doo-doo ?

"He also points out that web apps galore use JavaScript and that Microsoft is comfortable with JavaScript for Windows 8 apps."

Now, please keep in mind that I'm not a professional developer, but even I can see something really out of place here... Sure; Microsoft is comfortable with HTML5 & JavaScript for Windows (8) Store apps.

Lets look at some of the highlights of what a Windows Store App is all about (as can be read on the MSDN page here):

  • They run in a single window that fills the entire screen by default.
  • They automatically work with a variety of input sources, including touch, pen, mouse, and keyboard.
  • They install easily and uninstall cleanly.
  • Instead of static icons, they use live tiles that can display notifications.
  • You can write Windows Store apps in a variety of languages, such as C# and Visual Basic with XAML, C++ with XAML or DirectX, and JavaScript with HTML/CSS.

I wouldn't quite compare that to the default programs which you normally get on a desktop-like environment such as Gnome (or KDE). These programs are meant to be light weight (sort of) because they run in a closed and locked down environment (the void we once knew as Metro).

Another thing which the "Gnome Guys" seem to completely ignore is while Microsoft may have been comfortable with this; hundreds if not thousands of Window-based programmers weren't so enthusiast about the idea (in all fairness; that was also fuelled by the rumours that MS would drop .NET).

If you want to use Microsoft as an example; then why not use their .NET framework model as well? You know: a common runtime combined with a specific language specification and then stack several languages on top of that so that the programmers can choose what they like best while still complying to whatever standards you want to use, no matter what language they prefer ?

10
0
Silver badge

Re: Another doo-doo ?

> They run in a single window that fills the entire screen by default.

Argh! Now who's re-inventing the VT100?

repeat after me

the reason for having a pixel addressable screen is so you can display multiple things at once.

Xerox demo's this donkey's years ago.

Argh!

19
1
Alert

Re: Another doo-doo ?

If you want to use Microsoft as an example; then why not use their .NET framework model as well? You know: a common runtime combined with a specific language specification and then stack several languages on top of that so that the programmers can choose what they like best while still complying to whatever standards you want to use, no matter what language they prefer ?

Erm, isn't that what they had been doing for the last 10 years with Mono?

(And that model could also describe the Java ecosystem)

5
0
Silver badge

@Captain TickTock

"Erm, isn't that what they had been doing for the last 10 years with Mono?"

Well spotted. I wrote that with .NET in mind but the same applies to Mono as well. Although basically Mono seems to mainly focus itself on C#, afaik there aren't any other compilers available as of yet.

Even so; if Canonical really wants to follow the Microsoft example as they claim then Mono would have made a lot more sense to me. Not too sure how good of a choice that would be though.

0
1
Silver badge
FAIL

Re: Another doo-doo ?

the reason for having a pixel addressable screen is so you can display multiple things at once.

That's a bit of a non sequitur!

I can think of multi-tasking systems that just used a text screen - remember DESQview? And I can think of plenty of systems with pixel addressible screens that just showed a single application full-screen (how many 1970s/80s 8-bit systems were multi-tasking?)

2
1
Silver badge
Unhappy

Re: Another doo-doo ?

>> They run in a single window that fills the entire screen by default.

>

>Argh! Now who's re-inventing the VT100?

Oh no no, come on now , be fair - haven't you seen the MS ads where they're trumpeting the fact that you can have 2 apps on the screen *At The Same Time* In Metro/whatever! In tiled formation. Hello Windows 1.0!

Seriously , I don't know what the cretins in the MS marketing dept have been smoking or whether they've been off planet since 1980 , but if they seriously think thats a selling point then perhaps VT100s will be making a comeback for home use if we continue on this retrograde step in user interfaces.

3
0
Silver badge
Holmes

Re: Another doo-doo ?

the reason for having a pixel addressable screen is so you can display multiple things at once

No, the reason for having a pixel addressable screen is the same reason for having internet access: pictures, usually of kitties of one form or another.

5
0
Facepalm

What a dreadful decision

Every generation gets to use a language apparently designed by people who know little about programming languages. Over the years we've had COBOL, BASIC, PERL to name a few of the horrors visited on innocent programmers. By now, JavaScript should have faded away. Instead, another wilfully ugly and utterly inappropriate language is still growing.

12
9
Facepalm

Re: What a dreadful decision

It's Perl.

5
1
Silver badge
Flame

Re: What a dreadful decision

"Over the years we've had COBOL, BASIC, PERL to name a few of the horrors visited on innocent programmers"

BASIC was designed to teach kids and in that area its perfect - it introduces the concepts of variables, loops and subroutines. Its when it was expanded into a "serious" programming language that the cracks started to show.

And COBOL was good for its time given the hardware it was running on. Its easy to be dismissive of what people did in the past just because you can look at it though the prism of history but put yourselves in their place in that time and see how well you'd do.

As for Perl .... ummm ..... yeah well, there's always one...

4
0
Silver badge
Trollface

Re: What a dreadful decision

Upvote for simply mentioning Perl. Perl's obviously bolted on OO functionality is about as ugly as any common modern language gets. I swear Python prospers simply due to the numerous short comings in Perl.

3
0
Bronze badge

Re: What a dreadful decision

perl -e '

print "Downvoting for insulting Perl.\n"x100;

'

6
0
Bronze badge

@asdf

Every programming language has shortcomings that is why there are quite of few of them. Perl has much more advantages than shortcomings though,

2
0
Silver badge

@boltar et ali. (was: Re: What a dreadful decision)

"And COBOL was good for its time given the hardware it was running on. Its easy to be dismissive of what people did in the past"

In the past? COBOL & Fortran still run most of today's big money operations. Learn those two inside-out, and you'll be employed for life, probably making three or four times what your current Boss makes as a salary. But unlike said Boss, you can work from home, in your jammies, with three days growth of beard, your dawg warming your toes, and a beer at your elbow.

Proper K&R C, with a good knowledge of the Assembly language for the targeted processor(s), comes close in earning power & working conditions.

C derivatives, including the various Javas, probably not so much.

BASIC, in any iteration, is absolutely the worst language to teach the neophite programmer. Please put on the pointy hat & go sit in the corner. (Before you ask, I like to teach the Scheme dialect of Lisp and/or Smalltalk as a first language(s) for kids).

Perl's great. I use it for what it was originally intended for ... putting system logs into human-readable format, the way I want the logs to be presented. (Remember, Wall's variation of Perl's backronym is "pathologically eclectic rubbish lister".)

0
0
Silver badge

The underpants GNOME

1. Have discussion and gather opinions

2. Choose javascript

3. ??

15
0
Bronze badge
FAIL

Re: The underpants GNOME

Yep. Stick a fork in it, its done.

Oh, wait - someone did put a fork in it, its called Mate.

5
0
Mushroom

Good old gnome, always mucking the devs about.

0
0
Silver badge
Facepalm

Worst decision after the Gnome 3 pratfall.

Guess this will be like Java, where adequate and usable languages will emerge over time (after much slaving, moans, lost money and time) that compile down to / can still be transformed into the one primary party-decreed big-brotherly language where their proponents can still say "but technically it's still X" without causing Papal writs against heretics to be issued.

If Gnome has still any developers by then.

"Seriously, if someone brings that up in a discussion they can now be thoroughly ignored"

Yes, that's a formula for success. Someone has confused physics and development.

3
1

Re: Worst decision after the Gnome 3 pratfall.

Java, the language, is actually pretty good. Excellent IDE/ tool support, well understood proper ways to do things.

In any case, the other jvm languages almost all compile straight to JVM bytecode now, which is unrelated to java the language.

6
1
Anonymous Coward

Re: Worst decision after the Gnome 3 pratfall.

"Java, the language, is actually pretty good."

I don't like eggplant.

What, we aren't making random statements that have nothing to do with the article?

Repeat after me: Javascript is NOT Java (the language).

There are some superficial similarities, but then there are superficial similarities between Java and C++ as well.

4
11
FAIL

Re: Worst decision after the Gnome 3 pratfall.

Well good for you, you went off on one and didn't bother to read the comment I was replying to.

I've used Java, and javascript, for more than a decade, I know what it is, Java is good at what it is, although there are now better languages for particular domains that run on the JVM.

JavaScript has not been finished yet, was added to over time by competing groups/ companies and is missing some fundamental things, like a sane modularisation system.

However, that is irrelevant, as I was actually, in fact, replying this :

"Guess this will be like Java, where adequate and usable languages will emerge over time (after much slaving, moans, lost money and time) that compile down to / can still be transformed into the one primary party-decreed big-brotherly language where their proponents can still say "but technically it's still X" without causing Papal writs against heretics to be issued."

Thanks for reading, or not.

5
0
WTF?

I don't get it

What is with these GNOME devs? Between cutting episodes they have some therapy, this being the latest lot of razor-action.

In the meantime we're all aghast and saying to them, 'Why? Why are you doing this to yourself? We liked you the way you were before!'

Maybe I'm just too old and jaded; perhaps they want to vanish into obscurity. Whatever it is they're certainly flailing about a lot.

24
0

This post has been deleted by its author

Silver badge
FAIL

API, not language

All the Gnome team should do is document the API and let people use whatever language they like.

If they're really not interested in the project anymore just dump it on github and let someone else take it up if they're interested, instead of trying to drive everyone away from it...

15
0
Anonymous Coward

Re: API, not language

The problem is the nature of the Gnome API. The Gnome developers have created their own object model, and deeply embedded it into the design of the API. However, the Gnome developers didn't handle the Platform Independent Model vs. Platform Specific Model very well, so the Gnome API is very much in terms of the PSM of their object-oriented C implementation (the GObject system). This makes programming Gnome needlessly complex, as things the programmer shouldn't worry about (ownership model of objects, lifecycle of objects, polymorphism, interfaces) are NOT handled by the language, and must be handled by the programmer.

They attempted to resolve this by Vala - their home-brew language that was supposed to hide all of that (by generating C code implementing the OOC GObject PSM), but that hasn't taken off: it seems programmers have better things to do with their time than learn another language for a relatively small niche (and that niche is getting smaller every day, especially with decisions like this).

So, rather than take the rather large step of refactoring all the Gnome libraries to move to a language that has a more sensible way of handling objects (e.g. C++11 or native Java (NOT Javascript - see my earlier comment about Java<language> != Javascript)) they decided to move to Javascript, which they could map to the GObject system and that programmers might be willing to learn.

Mind you, using Javascript as a *part* of an application makes a great deal of sense: if you want a Turing-complete scripting language, Javascript is good enough. If you have designed your program as a proper Model-View-Controller pattern, and you keep the UI and the back-end split, having the UI use Javascript to provide "life" to the UI to make the UI code more portable is a good idea (back-end code, if there is no UI, tends to be more portable anyway).

But if the Gnome "architects" are seriously suggesting using Javascript for ALL Gnome development, IMHO it means they are resigning Gnome to only shallow GUI programs, and not complex system level programs.

All of which makes me glad I decided to strip Gnome off my machines - the Gnome team has noticed they are approaching the event horizon, and have decide the best bet is to dive in as fast as possible.

10
2
Silver badge
Headmaster

Re: API, not language

"so the Gnome API is very much in terms of the PSM of their object-oriented C implementation (the GObject system). This makes programming Gnome needlessly complex, as things the programmer shouldn't worry about (ownership model of objects, lifecycle of objects, polymorphism, interfaces) are NOT handled by the language, and must be handled by the programmer."

I'm not going to defend Gnome about much , but come on , C is not a hard language to use and if you really have problems managing your own objects then you're going to have similar issues with C++. Also I prefer the explicit nature of C - what you C is what you get. Unlike with C++ where a whole load of implicit activity can be happening "under the hood" thanks to constructors & destructors of stack based objects & temporaries, type promotion etc.

1
4
Anonymous Coward

Re: API, not language

if you really have problems managing your own objects then you're going to have similar issues with C++. Also I prefer the explicit nature of C - what you C is what you get. Unlike with C++ where a whole load of implicit activity can be happening "under the hood" thanks to constructors & destructors of stack based objects & temporaries, type promotion etc.

Well, that "implicit activity" in C++ is exactly why you hardly have to manage your objects at all, the language takes care of most of the resource (not just memory) management for you. Granted, sometimes there's the odd object you need to free yourself because of language limits (smart pointers in containers anyone?), but even that is waning thanks to C++11.

One just has to remember that C++ is not C-with-classes, and use it accordingly.

4
0

Re: API, not language

Have you ever tried writing any significant amount of code in C using GTK+'s bloated piece of crap GObject system? I shudder to think how many hours of my life I've wasted manually specifying vtables and handling GObject properties. Glad I jumped that ship 20 months ago.

Yes, C is a vastly easier language to understand compared to C++ and can even be a more productive language in some circumstances... But not when you use it to manually implement everything C++ gives you out of the box minus the syntactic sugar.

5
0
Silver badge

Re: API, not language @boltar

The thing with Gnome/GTK+ is that they actually implemented OO in C instead of going for C++. So the whole thing looks as ugly as MFC, because your "pointers" are actually representing objects, but instead of having the OO specific syntax, you have to use weird function voodoo to get the same stuff you get with C++.

And I don't know about Gnome, but GTK development was a nightmare. I gave up and switched to Qt real fast... and by "real fast", I mean 2002. It's much cleaner.

5
0
Silver badge
Headmaster

*ç%&!!

Yes, yes,

But can we PULEASE absolutely INTERDICT the use of the ugly "Turing-complete" marketadjective.

It sounds more retarded than "cyber" and means even less. Once you have a WHILE loop and string concatenation (plus substringing and length maybe), you have an Universal Turing Machine. Great, so what.

I can only imagine this ... expression ... was born by people who initially thought that HTML was a "programming language".

IMHO, people typing that ... thing ... into textareas should automatically be presented with a strobing screen so that they get epilepsy and drop under the table. Maybe on can get the browser developers to integrate this idea.

1
1
Silver badge
Trollface

Re: API, not language

Why stop at C when it insists on taking care of the stack pointer? With assembler you get to set it yourself.

3
0
Silver badge
Angel

Re: *ç%&!!

HAH! Downvote me about "turing complete" all you want, Sir Bedeveres of "Computer Science" with your O'Reilly books. I laugh at your puny onslaughts and your bizarre rabbit-shaped logic contraptions.

0
0
Silver badge

And I thought Gartner was quite insane ...

... but then GNOME decides to trump them. Honestly, the mind boggles. What are the GNOME folks smoking? Whatever it is, I don't want any.

10
0
Bronze badge

Persistent storage, USB and keyboard connections

I hope that when they say 'first class language", they mean persistent storage as feature rich as the file system, not just ".localstorage"

I don't mean that dev's have to be able to write hardware drivers or OS daemons in JS, but persistent storage as good as using Excel would go a long way to making this viable.

0
0
Silver badge

Re: not just ".localstorage"

If you think that's the only way to get at the file system in javascript you should do some research before posting.

0
0
Devil

Re: Persistent storage, USB and keyboard connections

No, they mean language for your "first class in programming".

1
0
Bronze badge

Re: not just ".localstorage"

>If you think that's the only way to get at the file system in javascript

If you think that Java in javascript is what is meant by "sole app dev language", I have a bridge you might want to buy.

0
0
Boffin

Going to the source...

From http://treitter.livejournal.com/14871.html

...

It's critical that everyone understands this decision as a plan to elevate the language, bindings, tools, and documentation to a level of quality we have not yet achieved. It is not a decision to abandon any other language bindings. We will continue to distribute other bindings and documentation as we do now and compatibility for the other languages will continue to be developed as they are today by the developers involved with those modules.

...

(emphasis mine)

Looks a lot more rational than it's being made out to be.

6
1
Silver badge

So, in other words, this "decision" is pure Web 2.0 rhetoric, ergo I can use the feather they themselves offered and ignore it.

2
1
Silver badge
Pint

@Captain TickTock

It's critical that everyone understands this decision as a plan to elevate the language, bindings, tools, and documentation to a level of quality we have not yet achieved.

Looks a lot more rational than it's being made out to be.

Quite the contrary IMO. Because what he's saying there is that choosing a specific programming language will allow them to "elevate the language, bindings, tools and documentation". How on earth would the choice for a programming language effect your documentation for example ?

That makes absolutely 0 sense to me.

Also; a language alone doesn't bring in better tools; that's the programmers job. So if they feel their current batch of programmers isn't up to making tools of their desired quality (IMO that is what he's saying there) then how would changing the language effect this?

So I don't quite agree with you; all I'm reading is a lot of talk without any meaning.

3
1

Re: @Captain TickTock

It's not the choice of language, it's the choosing of one specific programming language that allows them to focus their resources, so they have a better chance of producing good docs and tools, rather than if they dispersed their effort on several languages at once.

Agreed, the language alone doesn't bring in better tools, but again, focussed effort does. Now he says that no language is perfect, and clearly JavaScript is controversial here, so it remains to be seen how this will pan out.

1
0

Page:

This topic is closed for new posts.