The Artima Developer Community
Sponsored Link

Weblogs Forum
Desktop Linux Just Died

36 replies on 3 pages. Most recent reply: Jan 24, 2006 8:36 PM by Boris Reitman

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 36 replies on 3 pages [ « | 1 2 3 | » ]
rubyfan

Posts: 22
Nickname: rubyfan
Registered: Jan, 2004

Re: Better options exist Posted: Mar 22, 2004 4:16 PM
Reply to this message Reply
Advertisement

> Yet Apple themselves chose the C++ KDE html renderer as
> the
> basis for their Safari browser, and used the KDE
> javascript
> engine to boot...
>


What were their choices? They knew that IE wasn't keeping up (featurewise) with the opensouce browsers and they didn't want to be dependent on M$ anymore so they had basically three choices: Konqueror, Mozilla or roll-your-own. Obviously the last option would take too long. I believe both Konqueror and Mozilla are written in C++. My point is that Apple didn't sit around and say, "gee, we'd better go with Konqueror because it's written in C++". No, they chose it because it already had the features they wanted. However, that said, I'm sure that Safari doesn't use Qt (does it? I could be wrong.), so the actual GUI components probably use Obj C/Cocoa.

Todd Blanchard

Posts: 316
Nickname: tblanchard
Registered: May, 2003

ObjectiveC got exceptions Posted: Mar 22, 2004 8:48 PM
Reply to this message Reply
"I _would_ like to see Obj C get exceptions"

Ask and ye shall receive

-fobjc-exceptions

Enable syntactic support for structured exception handling in Objective-C,
similar to what is offered by C++ and Java. Currently, this option is only
available in conjunction with the NeXT runtime on Mac OS X 10.3 and later.

            @try {
...
@throw expr;
...
}
@catch (AnObjCClass *exc) {
...
@throw expr;
...
@throw;
...
}
@catch (AnotherClass *exc) {
...
}
@catch (id allOthers) {
...
}
@finally {
...
@throw expr;
...
}


The
@throw
statement may appear anywhere in an Objective-C or
Objective-C++ program; when used inside of a
@catch
block, the
@throw
may appear without an argument (as shown above), in which case
the object caught by the
@catch
will be rethrown.

Note that only (pointers to) Objective-C objects may be thrown and
caught using this scheme. When an object is thrown, it will be caught
by the nearest
@catch
clause capable of handling objects of that type,
analogously to how
catch
blocks work in C++ and Java. A
@catch(id ...)
clause (as shown above) may also be provided to catch
any and all Objective-C exceptions not caught by previous
@catch

clauses (if any).

The
@finally
clause, if present, will be executed upon exit from the
immediately preceding
@try ... @catch
section. This will happen
regardless of whether any exceptions are thrown, caught or rethrown
inside the
@try ... @catch
section, analogously to the behavior
of the
finally
clause in Java.

There are several caveats to using the new exception mechanism:


*Although currently designed to be binary compatible with
NS_HANDLER
-style
idioms provided by the
NSException
class, the new
exceptions can only be used on Mac OS X 10.3 (Panther) and later
systems, due to additional functionality needed in the (NeXT) Objective-C
runtime.

*As mentioned above, the new exceptions do not support handling
types other than Objective-C objects. Furthermore, when used from
Objective-C++, the Objective-C exception model does not interoperate with C++
exceptions at this time. This means you cannot
@throw
an exception
from Objective-C and
catch
it in C++, or vice versa
(i.e.,
throw ... @catch
).


The
-fobjc-exceptions
switch also enables the use of synchronization
blocks for thread-safe execution:

            @synchronized (ObjCClass *guard) {
...
}


Upon entering the
@synchronized
block, a thread of execution shall
first check whether a lock has been placed on the corresponding
guard

object by another thread. If it has, the current thread shall wait until
the other thread relinquishes its lock. Once
guard
becomes available,
the current thread will place its own lock on it, execute the code contained in
the
@synchronized
block, and finally relinquish the lock (thereby
making
guard
available to other threads).

Unlike Java, Objective-C does not allow for entire methods to be marked
@synchronized
. Note that throwing exceptions out of
@synchronized
blocks is allowed, and will cause the guarding object
to be unlocked properly.

From: http://gcc.gnu.org/onlinedocs/gcc/Objective-C-Dialect-Options.html

Todd Blanchard

Posts: 316
Nickname: tblanchard
Registered: May, 2003

Re: Not dead, just spelled K-D-E Posted: Mar 22, 2004 8:55 PM
Reply to this message Reply
What I was trying to explain is that the group of developers who want to move to a high level vm are the ones who are now using C. The ones who are now using C++/QT are perfectly happy with their platform.

Who cares about those people? We want to get MORE people building apps. That means inviting in people who can't cope with C++ (or don't have the time to deal with it in all its minutiae - yes I mean me).

Hypercare, for instance, for the limited little tool it was, spawned thousands and thousands of apps written by average people who had never programmed before. This is because HC was a safe and nurturing environment that didn't punish mistakes too severly. Make a mistake and you get a little dialog box pointing to the error with a little debugger to help you figure out how you got there.

Make a mistake in C++ and it'll likely cost you a limb. Not everyone who wants a higher level environment can cope with the lower level one.

Jeroen Wenting

Posts: 88
Nickname: jwenting
Registered: Mar, 2004

Re: Better options exist Posted: Mar 23, 2004 1:18 AM
Reply to this message Reply
>
> Well the author (Havoc Pennington) of the original article
> is a leader in the GNOME project, which is famous for
> ignoring the existence of KDE and pretending GNOME == "The
> Linux Desktop."
>
> GNOME chose to base their development framework on C, and
> now they are having a language crisis. KDE chose C++/QT,
> and they are doing just fine.
>
Just as KDE ignores everything else and pretends IT is the one and only operating system (not just graphical shell anymore???) for the world.

The fragmentation is one reason why Linux is failing. Unless and until there's a common ground that means applications will work on ANY installation out of the box without needing endless tweaking and trying to get disparate runtime libraries to work together Linux is not a single platform.
That means developing for Linux is like developing for home computers back in the 1970s and '80s, to get a decent market you need to create several versions of your application. One for Gnome, one for KDE, one for plain old X, and of course in at least 3 package formats each for different distribution systems.
Oh, and don't forget you will need to pack a load of shared libs as well that systems may or may not have in the correct versions.

Makes having to write for ZX Spectrum, Apple II, C-64, and Atari ST an easy job by comparison...

And that's just the X86 distributions of course...

rubyfan

Posts: 22
Nickname: rubyfan
Registered: Jan, 2004

Re: ObjectiveC got exceptions Posted: Mar 23, 2004 9:32 AM
Reply to this message Reply
Thanks. Very informative.

...is garbage collection on the way too?

Frank Mitchell

Posts: 37
Nickname: fmitchell
Registered: Jan, 2003

Re: ObjectiveC got exceptions Posted: Mar 23, 2004 9:49 PM
Reply to this message Reply
I haven't worked on Objective-C (for real, at least) since NEXTSTEP days, and it's obviously changed a lot. Still, it looks like Objective-C is growing into a sort of softly typed Java, with "[obj msg: arg]" syntax instead of "obj.msg(arg)".

After brief toying with Objective-C (on Linux) not too long ago, I wonder if ObjC's C legacy will hold it back:

- C header files, which require declaring signatures twice, and supposedly private instance variables in shared modules.

- C pointers, which -- among other well-documented flaws -- make exact GC harder. (Conservative GC may be sufficient, but it does preclude any copying GC algorithms.)

- C's flat namespace (or has Apple fixed that?)

- The dichotomy between objects/classes/methods and primitives/structs/functions, which can lead C programmers into convoluted or inflexible APIs. (Not to mention NSString vs. const char *)

- Foundation Kit's manual refcounting (retain/release/etc.), which makes converting to automatic GC trickier. (Yes, you can simply make retain/release do nothing ... but what about programmers who assume an unneeded object will be freed immediately, not when the heap is almost exhausted?)

So, given these problems -- almost all also problems in C++ -- maybe desktop programming needs to move to high-level dynamic languages free of the C legacy, such as Python, Ruby, Smalltalk (!?), etc. One can still *use* C/C++, when necessary, but an application programmer shouldn't *have* to worry about memory management, structs vs. objects, header files, name clashes, etc.

P.S. Maybe I've read comp.lang.objective-c one time too many, but I keep expecting David Stes to pop up and decry Apple's blasphemy against the One True Objective-C.

ilPostino

Posts: 8
Nickname: ilpostino
Registered: Feb, 2004

Re: Desktop Linux Just Died Posted: Mar 24, 2004 7:34 AM
Reply to this message Reply
Firstly, why are we always fighting a war with whoever is at the top? If we just code something because we enjoy doing it and it turns out to be good, and as usual, free, people will use it. We don't need to worry about lock-ins to the MS platform and other crap.

Secondly, Linux was good when there wasn't a desktop. That is how it should remain. Right now GNOME/KDE are just as if not even more unstable than an XP desktop, no? wanna bet. Try running a few desktop apps on GNOME and see how long it takes X to crash. The only good thing is you don't need to reboot the machine.

Linux needs focus, badly....but whats the rush? Who cares how long it takes, kick back write a .NET equivalent (not a clone) and then let people start writing apps.

I'd like to know this....What if all the open source developers wrote programs for the MS Desktop (XP) instead of linux. In other words, leave the desktop problems to MS and just write good free programs, like better web servers etc etc. Just because you want to write something open source and free doesn't mean you have to use linux ... wake-up, use the stable platform and forget about the war.

ok, I'm done :D

rubyfan

Posts: 22
Nickname: rubyfan
Registered: Jan, 2004

Re: Desktop Linux Just Died Posted: Mar 24, 2004 9:58 AM
Reply to this message Reply
I'd like to know this....What if all the open source developers wrote programs for the MS Desktop (XP) instead of linux. In other words, leave the desktop problems to MS and just write good free programs, like better web servers etc etc. Just because you want to write something open source and free doesn't mean you have to use linux ... wake-up, use the stable platform and forget about the war.


Several responses come to mind, but I'll try to 'focus'...

How is it that the 'MS Desktop' is more stable than Linux? I work in a very large corporation and I've got both an XP box on my desk and a Linux box on my desk. About once a week a window pops up on my XP box telling me to install the latest security patch and reboot...IMMEDIATELY! So I've got to stop everything I was doing on the XP box, install the patch and reboot. The Linux box just keeps humming along, no doubt with a smirk on it's monitor. ;-)

Secondly, as someone who has done some open source development, I really couldn't get enthusiastic about the Windows platform, I mean why should I help Microsoft extend their monopoly? Their products are mediocre at best and they aim for the lowest common denominator - what's exciting about that?

However, lately, I've found that I can get excited about developing open source software for MacOSX. All the tools are free, but of high quality (XTools & XCode, etc) and developing Cocoa apps is actually pretty fun. Their documentation is quite good and they have a rich library of components which you can embed in your apps (including a web browser, WebKit, for example) without having to worry about any royalties. At this point I see a lot of Open Source developers going toward OS X which is arguably much more stable (in many ways) than you claim Windows to be.

ilPostino

Posts: 8
Nickname: ilpostino
Registered: Feb, 2004

Re: Desktop Linux Just Died Posted: Mar 24, 2004 11:39 AM
Reply to this message Reply
rubyfan: I don't want to start an arguement re: which is more stable - my point is who cares? If you develop programs for MS then you target the largest audience its that simple. Lets forget the OS and focus on the programs... even if you hate MS ;-)

I would love to write something for MacOS but who the hell will use it? I only know one person who has a mac at home. I do like the macs though, nice and clean ;)

-me

Vincent O'Sullivan

Posts: 724
Nickname: vincent
Registered: Nov, 2002

Re: Desktop Linux Just Died Posted: Mar 25, 2004 5:03 AM
Reply to this message Reply
> I mean why should I help
> Microsoft extend their monopoly?

Linux is exactly what Microsoft needs to keep it dominating the market. It soaks up all the talent and user base that might otherwise gravitate towards something that might be a market threat (e.g. Apple).

> Their products are mediocre at best

This is just wishful thinking. Their core products NT/XP/Office work just fine for the market they're intended for. Geeks mightn't like them but my family do. Unless you are prepared to admit to the strengths of the opposition, you can never hope to challenge them.

> they aim for the lowest common denominator

Well, yes. They're in it for the money. Sales is what it is all about.

> what's exciting about that?

If, like Microsoft, you're producing a commercial product then the measure of success is sales, not the ability to say "but our product X is 'better' than their product Y".

> ..developing open source software for MacOSX. All the tools are free..

The abundance of free software means that there is no commercial incentive to develop software for OSX, thus ensuring that it always remains a niche product.

At the end of the day who benefits from free software? As far as I can see, only two groups. The open source community, most of whose output is consumed by themselves in a closed loop,
and Microsoft
1) because the open source community cuts off the air to small and new commercial who don't have the resources to out-develop their products,
2) the OS community produces little original software that people other than they themselves use,
3) such innovations as the OS community do provide serve to keep Microsoft on their toes.

Vince.

rubyfan

Posts: 22
Nickname: rubyfan
Registered: Jan, 2004

Re: Desktop Linux Just Died Posted: Mar 25, 2004 10:03 AM
Reply to this message Reply
> > I mean why should I help
> > Microsoft extend their monopoly?
>
> Linux is exactly what Microsoft needs to keep it
> dominating the market. It soaks up all the talent and
> user base that might otherwise gravitate towards something
> that might be a market threat (e.g. Apple).

Actually, I'm seeing lots of open source developers gravitate towards Apple. At last year's OSCON pretty close to half of the laptops there (and most everyone had a laptop) were Apples. This at OSCON where most everyone is a developer. This bodes very well for Apple. Developers actually like developing for the platform and so lots of software is appearing.

I've been running Linux since '96 and I just recently bought a Powerbook. I plan to buy more Macs in the future.

>
> > Their products are mediocre at best
>
> This is just wishful thinking. Their core products
> NT/XP/Office work just fine for the market they're
> intended for. Geeks mightn't like them but my family do.
> Unless you are prepared to admit to the strengths of the
> e opposition, you can never hope to challenge them.

I'm comparing XP with MacOSX - XP looks pretty mediocre by comparison.

>
> > they aim for the lowest common denominator
>
> Well, yes. They're in it for the money. Sales is what it
> is all about.
>
> > what's exciting about that?
>
> If, like Microsoft, you're producing a commercial product
> then the measure of success is sales, not the ability to
> say "but our product X is 'better' than their product Y".

In my case, I'm not developing mass-market apps. I'm more in the scientific/engineering application area. So I don't care about the mass market. YMMV.

>
> > ..developing open source software for MacOSX. All the
> tools are free..
>
> The abundance of free software means that there is no
> commercial incentive to develop software for OSX, thus
> ensuring that it always remains a niche product.

Actually, I notice lots of small sofware companies springing up which cater to MacOSX, so I'm not sure your assesment is correct. Sure Macs will probably remain a niche product for those who want a higher-quality system, but not everyone using a Mac is a developer (lots of artists, musicians,etc.) and these folks do buy software for the platform.

In fact I'm considering developing some commercial apps for OS X. The market is such that small players (1 or 2 person development shops) can actually enter the market. My perception is that would be much more difficult in the Windows world.

>
> At the end of the day who benefits from free software? As
> far as I can see, only two groups. The open source
> community, most of whose output is consumed by themselves
> in a closed loop,
> and Microsoft
> 1) because the open source community cuts off the air to
> small and new commercial who don't have the resources to
> out-develop their products,
> 2) the OS community produces little original software that
> people other than they themselves use,
> 3) such innovations as the OS community do provide serve
> to keep Microsoft on their toes.

A very narrow view.
Who has benefited from open source software?
*Everyone: The internet runs on open source software.
*Governments: free sofware allows them to run their IT depts more efficiently which cuts expenses. You do pay taxes don't you?
*Companies: I'm incorporating OSS into products right now. Since we don't have to pay royalties, we can do more with less. We can leverage on work that's already been done without reinventing the wheel every time.
*Developers: The great amount of high-quality open source development tools available to developers now helps us not only to create more OSS, but also commercial software as well. In fact, I would go so far as to say that OSS (in it's various forms including languages, tools, libraries, frameworks) is what is going to keep the American programmer in the game. If we want to keep our jobs we'll have to be 2 to 3X more productive than those Indian software engineers in order to be competitive. I find that using OSS and incorporating various components from the OSS community into my projects gives me that kind of edge.

OSS is here to stay and it's probably a lot more pervasive than you think it is. As someone mentioned earlier in the thread: you can either fight it (like Microsoft) or you can embrace it and incorporate it into your strategy (like Apple, IBM, Novell, Sun, ... well, pretty much everyone else these days except for Microsoft).

It turns out that in the software world sharing and open-ness benefits us all much more than closed-ness and hoarding.

Frank Mitchell

Posts: 37
Nickname: fmitchell
Registered: Jan, 2003

Re: Desktop Linux Just Died Posted: Mar 25, 2004 12:38 PM
Reply to this message Reply
> If we want to keep our jobs we'll
> have to be 2 to 3X more productive than those Indian
> software engineers in order to be competitive. I find
> that using OSS and incorporating various components from
> the OSS community into my projects gives me that kind of
> edge.

Except that Indians (and Chinese, and everyone else) will have those tools too ...

> OSS is here to stay and it's probably a lot more pervasive
> than you think it is. As someone mentioned earlier in the
> thread: you can either fight it (like Microsoft) or you
> can embrace it and incorporate it into your strategy (like
> Apple, IBM, Novell, Sun, ... well, pretty much everyone
> else these days except for Microsoft).

Even Apple benefits somewhat from OSS, since most Linux software is easily portable to BSD, and therefore MacOS X. True, Linux developers can't write GUIs using Apple APIs and tools (unless GNUStep is further along than I think). However, correctly architected systems decouple the GUI code from underlying functionality, so porting even those apps is far less of an effort than rewriting from scratch.

Maybe porting GNOME/KDE to MacOS's widgets and/or window manager -- Quartz, is it? -- would be a smart move too. Aren't there already Tk and wxWindows bindings?

rubyfan

Posts: 22
Nickname: rubyfan
Registered: Jan, 2004

Re: Desktop Linux Just Died Posted: Mar 25, 2004 1:56 PM
Reply to this message Reply
> > If we want to keep our jobs we'll
> > have to be 2 to 3X more productive than those Indian
> > software engineers in order to be competitive. I find
> > that using OSS and incorporating various components
> from
> > the OSS community into my projects gives me that kind
> of
> > edge.
>
> Except that Indians (and Chinese, and everyone else) will
> have those tools too ...
>

Quite true. However, in my experience (I've worked with several Indian and Chinese software engineers over the years) they tend to be more aware of what Microsoft has to offer and less aware of what exists out in the Open Source world. I'm not sure why that is. It won't stay that way forever, but in the meantime I plan to take advantage of it. ;-)

Vincent O'Sullivan

Posts: 724
Nickname: vincent
Registered: Nov, 2002

Re: Desktop Linux Just Died Posted: Mar 26, 2004 2:57 AM
Reply to this message Reply
> At last year's OSCON pretty
> close to half of the laptops there (and most everyone had
> a laptop) were Apples.

On the other hand, I don't know anyone who owns an Apple. My company has thousands of PCs. Last week I saw an Apple in one of the offices. The first I've seen in years. But (similarly to your experience above) this one office was doing software development not software usage, per se.

> I'm comparing XP with MacOSX - XP looks pretty mediocre by
> comparison.

I haven't seen it but I'll happily believe you. After all, if MAC software wasn't better than the Microsoft equivalent then who would buy it? But therein lies a problem. Everybody else (than Microsoft) has to climb a higher mountain to get their products to the market.

> *Companies: I'm incorporating OSS into products right now.

Presumably (since you mention companies) these are commercial products which are OSS too (due to the knock on effect of OSS licenses). If you are making the source code of these products available to competitors, how do you intend to retain the commercial edge over a long period of time? I don't think it can be done. What happens is that the commercial hit taken in developing the product (and the market) is eventually given away to software houses that can take the original and put out a cheaper clone.

Vince.

rubyfan

Posts: 22
Nickname: rubyfan
Registered: Jan, 2004

Re: Desktop Linux Just Died Posted: Mar 26, 2004 10:04 AM
Reply to this message Reply
>
> > *Companies: I'm incorporating OSS into products right
> now.
>
> Presumably (since you mention companies) these are
> commercial products which are OSS too (due to the knock on
> effect of OSS licenses). If you are making the source
> code of these products available to competitors, how do
> you intend to retain the commercial edge over a long
> period of time?

Not all OSS licenses require that source code be published. The BSD licenses and derivitives do not require it. You mostly need to avoid the GPL-type licenses, however in many cases you can use LGPL'ed libraries as well. So, if you're careful you won't need to publish your source code.

Also, a great amount of software is developed for internal use within companies. Since you don't distribute those applications to the outside world, it doesn't matter what licenses are involved. You can freely incorporate GPL code into those kinds of projects and reap the benefits.

There's also another class of applications where you really don't care if anyone sees the source code for them: they don't reveal any company secrets or they function somehow as helper/utility applications. So even though you might distribute these to customers, you don't care if they can get the source code for them.

> I don't think it can be done.

It's being done.

> What
> happens is that the commercial hit taken in developing the
> product (and the market) is eventually given away to
> software houses that can take the original and put out a
> cheaper clone.

Let's take a look at the state of affairs in the Microsoft dominated world: Let's say you develop some application that has potential to become very popular like, oh, say a browser or media player perhaps. As soon as Microsoft figures out that there is a significant market for these apps they incorporate similar knock-offs into their OS. Of course Microsoft's version of these apps are usually pretty shoddy at first compared to the already existing competitors, but after a few generations they start to become competitive and since they're included with the OS they essentially kill off the companies which originally developed these apps. Of course we know that Netscape suffered this fate and Real is about to. So why should I develop something with mass-market appeal in that environment?

Flat View: This topic has 36 replies on 3 pages [ « | 1  2  3 | » ]
Topic: Implementing Implicit Behavioral Subtyping using Traits Previous Topic   Next Topic Topic: What's in a name ... Traits versus Interfaces

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use