Linked by Thom Holwerda on Mon 2nd Jun 2008 09:36 UTC
General Development Ars has just published part three in their series "From Win32 to Cocoa", in which Peter Bright explains why he thinks "Windows is dying, Windows applications suck, and Microsoft is too blinkered to fix any of it." Part one dealt with the history of both development platforms, part two dived into .Net, different types of programmers, and Windows Vista, and part three details the development platform and tools Apple has to offer, and in what ways they are superior or inferior to Windows'.
Order by: Score:
Why was the Java bridge deprecated?
by ManishChaks on Mon 2nd Jun 2008 11:10 UTC
ManishChaks
Member since:
2007-04-24

It was sad to know that the java bridge was deprecated by apple. There was a time when Java used to be a first class citizen on OS X. Sadly that is not the case anymore.

The good news is that the Ruby Cocoa bridge is still there. So programmers who dont wanna learn Objective C do have a chance of writing good apps.

Of course Apple itself broke Drb in ruby as a part of the 10.5.3 update: http://www.ruby-forum.com/topic/154556

OS X may not be the developer's heaven as it is made out to be.

lurch_mojoff Member since:
2007-05-12

... So programmers who dont wanna learn Objective C do have a chance of writing good apps.


You say "learn Objective-C" as if it is this huge chore you have no hope of ever completing. Even with all the fanciness of version 2.0, Objective-C is still just sliver-thin superset of C. I think it is easier, at least in certain regards, for a Java developer to pickup Objective-C than to switch to Python of Ruby.

Doc Pain Member since:
2006-10-08

You say "learn Objective-C" as if it is this huge chore you have no hope of ever completing. Even with all the fanciness of version 2.0, Objective-C is still just sliver-thin superset of C. I think it is easier, at least in certain regards, for a Java developer to pickup Objective-C than to switch to Python of Ruby.


I hope it doesn't sound impolite, but... you usually don't "learn" ObjC, you *do* it - at least if you come from a C programming background. As you mentioned, ObjC is a superset of C, while, for example, C++ is another language, and so is JAVA. So let's assume you have good C knowledge, did some C++ and are familiar with concepts from the field of object orientation, then ObjC won't be a hard learning time for you. And if you're familiar with JAVA, ObjC isn't a big deal, too, because many elements of the language will look familiar to you. For non-Apple programmers, a look at GNUstep on x86 is worth taking.

At least I may say this from my individual experiences, maybe it's different when you're coming from "VisualBasic". :-)

google_ninja Member since:
2006-02-05

I disagree with that. Java/C++/C# i would say are about 90% the same, obj-c is closer to 60%. It is more like c++ with a dash of smalltalk then Java/C# which are more C++ with problems fixed.

lurch_mojoff Member since:
2007-05-12

... It is more like c++ with a dash of smalltalk then Java/C# which are more C++ with problems fixed.


If we oversimplify thing, yes, Objective-C is C with a dash of Smalltalk, just as C++ is C with a dash of Simula. I agree that C++, Java and C# are much easier to switch between, given their common ancestry and design philosophy, but, except for a few fairly small conceptual differences (e.g. message passing vs. method calling), when it comes to syntax, design patterns and so on, Objective-C is not that drastically different from them.

tomcat Member since:
2006-01-06

"... So programmers who dont wanna learn Objective C do have a chance of writing good apps.
You say "learn Objective-C" as if it is this huge chore you have no hope of ever completing. Even with all the fanciness of version 2.0, Objective-C is still just sliver-thin superset of C. I think it is easier, at least in certain regards, for a Java developer to pickup Objective-C than to switch to Python of Ruby. "

Sorry, but Objective-C is crap, in my opinion. The syntax is too arcane, and the whole sender-receiver model is unnecessarily ambiguous. It makes C++ look incredibly elegant, by comparison.

mnemonics Member since:
2006-04-21

Sorry, but Objective-C is crap, in my opinion. The syntax is too arcane, and the whole sender-receiver model is unnecessarily ambiguous. It makes C++ look incredibly elegant, by comparison.

That's your opinion and I respect it.

But would you care enought to argument you point of view ? You know arguments, facts.... because it seems that you dislike Objective-C simply because you don't understand it and find it ambiguous. This really gives you less credibility than you surely deserve.

tomcat Member since:
2006-01-06

But would you care enought to argument you point of view ? You know arguments, facts.... because it seems that you dislike Objective-C simply because you don't understand it and find it ambiguous. This really gives you less credibility than you surely deserve.


Oh, I understand it. I just don't like it. Here's are some examples of why I don't like Objective-C. It has a late-binding contract so, when you call a particular object method, there is no guarantee that the receiver will even process it. You don't know until RUNTIME. That's weak and error-prone. Contrast that with C++, which has very strict compile-time type-safety built into it. Additionally, I don't like the syntax for Objective-C. It looks like it was put together by someone who thought that things like consistency and readability are secondary considerations. The code just looks UGLY. Contrast that with C++, with namespaces, visibility modifiers, better inheritance semantics, and there's no competition.

evangs Member since:
2005-07-07

OS X may not be the developer's heaven as it is made out to be.


Oh please...

Java developers value portability. Java + Cocoa ties you to OS X while incurring the overhead of the JVM. Ergo, few (any?) developers used the Java Cocoa bridge. Right from the start, it was a solution going in search of a problem.

No one, not even Java developers mourn the demise of the Java Cocoa bridge. Neither should you.

cg0def Member since:
2006-02-12

stop complaining about Java and OS X. There are hardly any applications that require java 1.6 and most of those are simply compiled with 1.6 and do not really use any features not present in 1.5. Also there is a 1.6 for mac although it is still not a final version. Yes it sucks that even though Sun java is not open source it takes so long to get it to MacOS but the problem is nowhere near the magnitude that it's being presented.

To me the best thing about OS X compared to windows is that you get free and very powerful development tools. Xcode is great but then again there is the issue of objective-c ... Oh and the author of the article commends Apple for being able to say enough is enough but they paid dearly for that ability and are still paying for it. Adobe anyone? I guess this is the risk of relying on 3rd party vendors but what I really respect in Apple is that they acknowledge the risks and try to offer alternatives to their valued customer base. A good example is the office suite. While it's not as powerful as MS's own it is a lot cheaper and quite capable.

WPF
by google_ninja on Mon 2nd Jun 2008 11:52 UTC
google_ninja
Member since:
2006-02-05

I recently wanted to write a Windows application that included a text box in a menu, similar to the "search" menus found in Mac OS X. In the end, I gave up. Windows does support menus, but if you don't want a menu that acts 100% like the built-in menus, you're basically on your own. There is a way to control how the menu is drawn, so instead of taking the standard appearance you can give it a custom one, but that's an all-or-nothing proposition. You can't have a menu that looks like a standard menu except for one item; either the menu is standard, or it's custom, with nothing in between.


This is how you do a menu with a textbox in .net

<Menu Height="25" VerticalAlignment="Top">
<TextBox Width="50"></TextBox>
</Menu>

Not exactly rocket science...

Welcome to 2006. Winforms has been deprecated for a very long time now.

RE: WPF
by evangs on Mon 2nd Jun 2008 11:59 UTC in reply to "WPF"
evangs Member since:
2005-07-07

This is how you do a menu with a textbox in .net Not exactly rocket science... Welcome to 2006. Winforms has been deprecated for a very long time now.


That's all well and good, but it's still slightly irrelevant. How many end user applications are written in .NET? How easy is that to accomplish in C++ unmanaged code which is what the majority of desktop applications use?

RE[2]: WPF
by google_ninja on Mon 2nd Jun 2008 13:34 UTC in reply to "RE: WPF"
google_ninja Member since:
2006-02-05

How many end user applications are written in .NET?


AFAIK obj-c is managed (it has gc, so it almost has to be)

Regardless, I would say 90-95% of windows apps are managed. Only the most performance sensitive stuff is written in unmanaged code nowadays, and we are even starting to see that phased out.

If you want to talk deprecated, nothing written in the last decade should have been using c++. On windows anyways.

Edited 2008-06-02 13:36 UTC

RE[3]: WPF
by JeffS on Mon 2nd Jun 2008 13:40 UTC in reply to "RE[2]: WPF"
JeffS Member since:
2005-07-12

"I would say 90-95%. Only the most performance sensitive stuff is written in unmanaged code nowadays, and we are even starting to see that phased out.

If you want to talk deprecated, nothing written in the last decade should have been using c++."


That's true of internal corporate apps, where performance and end user experience matter less, and a lot of code is "throw-away".

Anything public facing, shrink-wrapped proprietary or open source, or otherwise, and desktop or systems oriented, is almost always C/C++.

For software that is not forced on it's users (like internal corporate apps), performance, lnf, and overall end user satisfaction, matter very very much. If all those things are not excellent, the software is ignored. For accomplishing these things, C/C++ usually offer the best solutions.

RE[3]: WPF
by l3v1 on Mon 2nd Jun 2008 13:55 UTC in reply to "RE[2]: WPF"
l3v1 Member since:
2005-07-06

If you want to talk deprecated, nothing written in the last decade should have been using c++. On windows anyways.


Woah, now that's something unusual ;) The question I'd ask as a reply to that is something like "says who?". This depends on so many factors, that stating something like this is more like the 640K should be enough that anything else. Just as one example, where I do my stuff, we develop mostly algorithms, with the gui coming much later, and since almost all the algorithms are written in c++ and on windows, it comes easier to create an mfc gui for it. We also use c# and Java when the need arises, but it's not a goal, it's the tool. I never use a language or a tool because it's suddenly fashionable, I always use that in which I can do what I have to do more conveniently - from a certain point of view.

RE[4]: WPF
by google_ninja on Mon 2nd Jun 2008 14:52 UTC in reply to "RE[3]: WPF"
google_ninja Member since:
2006-02-05


Woah, now that's something unusual ;) The question I'd ask as a reply to that is something like "says who?". This depends on so many factors, that stating something like this is more like the 640K should be enough that anything else. Just as one example, where I do my stuff, we develop mostly algorithms, with the gui coming much later, and since almost all the algorithms are written in c++ and on windows, it comes easier to create an mfc gui for it. We also use c# and Java when the need arises, but it's not a goal, it's the tool. I never use a language or a tool because it's suddenly fashionable, I always use that in which I can do what I have to do more conveniently - from a certain point of view.


Maybe I should have been more clear. The official way to develop windows apps is .net, and has been for a very long time now. You can use MFC if you want, you could even use Tcl if you really wanted to. But the api that is being actively worked on and encouraged by the guys doing the OS is .net.

RE[4]: WPF
by dimosd on Mon 2nd Jun 2008 15:18 UTC in reply to "RE[3]: WPF"
dimosd Member since:
2006-02-10

this is more like the 640K should be enough that anything else


Oh boy! I remember upgrading my 512K computer to 640K!

It's a known fact of life you need at least 1Mb to get anything done. How was anyone getting anything done those days :-)

Edited 2008-06-02 15:19 UTC

RE[3]: WPF
by lurch_mojoff on Mon 2nd Jun 2008 13:59 UTC in reply to "RE[2]: WPF"
lurch_mojoff Member since:
2007-05-12

AFAIK obj-c is managed (it has gc, so it almost has to be)


Objective-C code is *not* managed.

RE[4]: WPF
by google_ninja on Mon 2nd Jun 2008 14:08 UTC in reply to "RE[3]: WPF"
google_ninja Member since:
2006-02-05

How would you implement garbage collection without a garbage collector? a google of http://www.google.ca/search?hl=en&client=firefox-a&rls=org.mozilla~...
leads me to believe there is a vm.

RE[3]: WPF
by ba1l on Mon 2nd Jun 2008 14:11 UTC in reply to "RE[2]: WPF"
ba1l Member since:
2007-09-08

Err... No, end-user applications are virtually never written in .Net. Just corporate stuff - the same kind of stuff that might otherwise be written in Java.

You also seem to have this problem with dates.

10 years ago was 1998 - Microsoft were still trying to get away with using a modified, non-standard version of Java.

The first release of the .Net framework was in 2002 - a mere 6 years ago. It wasn't usable for anything much until version 2, released in 2006. Realistically, developers could have started writing end-user apps in 2006. That's only two years ago.

As for WPF, that's only available in .Net 3.0 (early 2007), and only got support from Microsoft's tools in .Net 3.5 (late 2007). Any applications written with that won't even have come close to being released yet.

Clearly, you're not a software developer. Not on Windows anyway.

RE[4]: WPF
by google_ninja on Mon 2nd Jun 2008 14:45 UTC in reply to "RE[3]: WPF"
google_ninja Member since:
2006-02-05

Err... No, end-user applications are virtually never written in .Net. Just corporate stuff - the same kind of stuff that might otherwise be written in Java.


The vast amount of software written for windows used to be done in VB, not C++, or VB for the front end and C++ as COM objects. Since the shift to .net, everything that used to be done in vb, and most of what used to be done in C++ is now being done in .net. If you are talking about software pushing hardware to the limits (games, cg software, etc), yes, typically it is still done in C++. Other then that it is almost totally .net (with some notable exceptions).

You also seem to have this problem with dates.

10 years ago was 1998 - Microsoft were still trying to get away with using a modified, non-standard version of Java.


I was not developing professionally on windows at the time (was a Java guy), but I have been using .net since the first beta, closer to 2000, which was 8 years ago, so it feels like a decade ;-)

The first release of the .Net framework was in 2002 - a mere 6 years ago. It wasn't usable for anything much until version 2, released in 2006. Realistically, developers could have started writing end-user apps in 2006. That's only two years ago.


Like I said, I have been writing windows stuff with .net for closer to 8 years now. Granted, they were trivial things, but still.

As for WPF, that's only available in .Net 3.0 (early 2007), and only got support from Microsoft's tools in .Net 3.5 (late 2007). Any applications written with that won't even have come close to being released yet.


3.0 was a bit before vista, which was mid 2006. There were some early tools for WPF, but the first real designers only really became available early 2007 (as an out of band CTP release).

The problem with WPF is not the tooling, it is the vast armies of Winforms developers who don't know how to code a UI with anything but a visual designer. The studio tooling for WPF is (imo) some of the best work they have done so far, which is saying something because MS does great designers. However, you need to actually know WPF to use it properly.

Clearly, you're not a software developer. Not on Windows anyway.


I've been writing software for close to 15 years now, professionally for about 8, professionally on windows for about 3.

RE[4]: WPF
by cg0def on Mon 2nd Jun 2008 15:11 UTC in reply to "RE[3]: WPF"
cg0def Member since:
2006-02-12

Err... No, end-user applications are virtually never written in .Net. Just corporate stuff - the same kind of stuff that might otherwise be written in Java.



Oh, really? The ATI/AMD control panel comes to mind. It is quite the consumer application and has nothing to do with corporate activities other than the fact that it was produced by a corporation and is distributed by the same. And this is hardly the only example.

RE[4]: WPF
by BluenoseJake on Mon 2nd Jun 2008 18:42 UTC in reply to "RE[3]: WPF"
BluenoseJake Member since:
2005-08-11

"The first release of the .Net framework was in 2002 - a mere 6 years ago. It wasn't usable for anything much until version 2, released in 2006. Realistically, developers could have started writing end-user apps in 2006"

The .NET framework was very usable out of the gate, I developed tonnes of stuff with it using Visual Studio 2002, I also used 1.5, which came out with 2003, and version 2, which came out in 2005, not 2006.

Just because you think something is not useful, doesn't mean that others don't. Clearly you aren't a software developer, at least not on Windows anyway.

RE[3]: WPF
by SomeGuy on Tue 3rd Jun 2008 21:27 UTC in reply to "RE[2]: WPF"
SomeGuy Member since:
2006-03-20

1) GC in ObjC is optional, and many (most?) apps don't use it.
2) GC and "managed code" (whatever that means -- usually it seems to mean a VM) are entirely separate considerations. You often have GC without a VM, and it's quite possible to have a VM that doesn't do GC. (I believe that this is the case with LLVM, although it gives hooks to implement your own GC)

RE[2]: WPF
by BluenoseJake on Mon 2nd Jun 2008 18:37 UTC in reply to "RE: WPF"
BluenoseJake Member since:
2005-08-11

Actually, most applications written for Windows are inhouse apps written in Visual Basic or C#. Most developers for Windows are working for a company writing apps in VB, VB.NET or C#. Therefore, most user apps are written using the .net framework (or the vb6 runtime, which predates the .net framework)

RE: WPF
by memson on Tue 3rd Jun 2008 11:30 UTC in reply to "WPF"
memson Member since:
2006-01-01

Welcome to 2006. Winforms has been deprecated for a very long time now.


WPF is only available in Visual Studio 2008. The 2005 plug-in was never release for production use.

If I had time to hand code forms I would be writing in C++, not using a RAD environment.

Winforms is here and will be here for a long time yet. WPF is pretty much unused. I know of no one using it in production.

As with all discussions of this nature, use the right tool for the job. C/C++ is the correct tool for most platforms without a strong framework (LINUX for example.) Java is the correct platform for weenies and losers. Win32 is the only API if you want nice lean apps wich are pretty much unmaintainable, MFC and ATL are slight movements in a positive direction, but still way off the mark. Winforms is pretty much the only choice for DotNet (especially if you want to be cross platform) and Objective C is for the Mac. All other discussions are window dressing ;-) YMMV

Edit: messed up spelling.

Edited 2008-06-03 11:31 UTC

RE[2]: WPF
by google_ninja on Tue 3rd Jun 2008 12:26 UTC in reply to "RE: WPF"
google_ninja Member since:
2006-02-05

Yeah, I sorta disagree.

Your right that the 2k5 designer wasn't ever RTM'd, but that doesn't mean it can't be used to learn. WPF not only addresses the (valid) points in the article about the inflexibility of winforms, but it flips it around and makes the mac environment look inflexible by comparison.

You are right that WPF adoption has been extremely limited, but for the purposes of this conversation winforms is being used as a straw man.

As for hand coding, you don't need to hand code, but for the best experience you want to be in split screen (which is what the designer gives you by default), and be switching back and forth between the designer and the code. XAML is a high level declarative markup language, and it is really not hard to learn at all if you have any web experience. The benefits are definately there, and (IMO) make it the best tool for the job for any ui that goes beyond typical LOB stuff.

Just so we are on the same page, check this out http://www.beacosta.com/blog/?p=40 . I like to pull that out in any discussion on why WPF is worth learning, just because so many people really don't understand how wide the gulf is between it and winforms.

As with all discussions of this nature, use the right tool for the job. C/C++ is the correct tool for most platforms without a strong framework (LINUX for example.) Java is the correct platform for weenies and losers. Win32 is the only API if you want nice lean apps wich are pretty much unmaintainable, MFC and ATL are slight movements in a positive direction, but still way off the mark. Winforms is pretty much the only choice for DotNet (especially if you want to be cross platform) and Objective C is for the Mac. All other discussions are window dressing ;-) YMMV


Agreed on pretty much all respects except for the winforms one ;-) But I have the perspective of a web guy who does occasional smart clients, and the soul of an early adopter, so I guess i fall into the YMMV disclaimer

Edited 2008-06-03 12:29 UTC

RE[3]: WPF
by saso on Tue 3rd Jun 2008 13:51 UTC in reply to "RE[2]: WPF"
saso Member since:
2007-04-18

GNUstep Renaissance (http://en.wikipedia.org/wiki/GNUstep_Renaissance), which also runs natively on OSX, has been around for quite a while now too. The only downside is that it never gained enough traction in the community to force us to write a GUI designer for it.

Costly Dev tools
by xiaokj on Mon 2nd Jun 2008 13:59 UTC
xiaokj
Member since:
2005-06-30

Strange, but IIRC, I once read about how Windows gained market share by charging people for their dev tools rather than give them away.

IIRC, it goes like this: In those times, hardware prices are sky high, so Windows dev tools, at those times, looked cheap, especially compared to those UNIX ones. Moreover, Microsoft opened up their specs and so there was a lot of freeware compilers that were lousy, but got the job done. This allowed hobbyists and professionals alike to be drawn to the Wintel platform. When they achieved dominance, the cost of a dev licence hindered freeware development and this, in turn, allowed Microsoft to quality control the software produced for Wintel, to a small but noticeable extent.

However, I would agree that leeching off developers is a suicidal move since they are any platform's greatest asset. Not the users, but the developers. Just ask any open source developer in touch with the times.

Moreover, notice how hardware prices have plummeted for the past decades. If Microsoft kept the hardware to dev tool price ratio, I would bet that those dev tools will have to cost less than to make a burger.

Good article
by Bit_Rapist on Mon 2nd Jun 2008 14:41 UTC
Bit_Rapist
Member since:
2005-11-13

While I liked the article, I found it funny that the author portrayed Microsoft as a company that does not use its own APIs.

I guess Office, Internet Explorer, Live Messenger, Streets and Trips, Visual Studio and every other program MS has ever released were written without an api of any kind at their disposal. lol.

RE: Good article
by lurch_mojoff on Mon 2nd Jun 2008 15:57 UTC in reply to "Good article"
lurch_mojoff Member since:
2007-05-12

While I liked the article, I found it funny that the author portrayed Microsoft as a company that does not use its own APIs.

I believe the point the author was trying to make is that, for one, Apple themselves are using, for majority of their apps, the framework they are promoting as preferred for OS X development, unlike Microsoft, who still develop most of their software in Win32 instead of .Net. Also, especially when it comes to UI, most new objects in Cocoa and most new frameworks are "librarized" version of code Apple had to implement for their apps, while other frameworks (including .Net) are usually formally designed and then the features they implement are used in actual apps. I personally am still on the fence as to whether this necessarily leads to better framework quality, but still it is an approach quite different to Microsoft's.

RE[2]: Good article
by tomcat on Mon 2nd Jun 2008 18:34 UTC in reply to "RE: Good article"
tomcat Member since:
2006-01-06

I believe the point the author was trying to make is that, for one, Apple themselves are using, for majority of their apps, the framework they are promoting as preferred for OS X development, unlike Microsoft, who still develop most of their software in Win32 instead of .Net.


As I pointed out in a previous post, most developers don't write the kind of publicly-consumed applications that Microsoft produces (ie. Word, Excel, Visual Studio, IE, etc). They write line-of-business applications that pertain to their particular business use-cases. C/C++ isn't a good tool to use in those scenarios, but .NET/Java are excellent for that purpose. Hence, that's why Microsoft advocates .NET (and Sun advocates Java) for LOB apps. I've never heard Microsoft suggest that you should be using .NET to produce an app like Word. It's just common sense: Use whatever tool is most appropriate for the job. Apple is handing every developer a hammer, regardless of the problem, when they really only need a screw driver. The reason is simple: They want to tie you to their platform, no different than Microsoft or Sun or anybody else. At least with .NET and Java, you can run your code on other platforms.

Edited 2008-06-02 18:36 UTC

RE[3]: Good article
by tyrione on Mon 2nd Jun 2008 20:25 UTC in reply to "RE[2]: Good article"
tyrione Member since:
2005-11-21

"I believe the point the author was trying to make is that, for one, Apple themselves are using, for majority of their apps, the framework they are promoting as preferred for OS X development, unlike Microsoft, who still develop most of their software in Win32 instead of .Net.


As I pointed out in a previous post, most developers don't write the kind of publicly-consumed applications that Microsoft produces (ie. Word, Excel, Visual Studio, IE, etc). They write line-of-business applications that pertain to their particular business use-cases. C/C++ isn't a good tool to use in those scenarios, but .NET/Java are excellent for that purpose. Hence, that's why Microsoft advocates .NET (and Sun advocates Java) for LOB apps. I've never heard Microsoft suggest that you should be using .NET to produce an app like Word. It's just common sense: Use whatever tool is most appropriate for the job. Apple is handing every developer a hammer, regardless of the problem, when they really only need a screw driver. The reason is simple: They want to tie you to their platform, no different than Microsoft or Sun or anybody else. At least with .NET and Java, you can run your code on other platforms.
"

Perhaps on the Windows platform but I'm truly hardpressed to find Java/.NET applications [mono the exception for GNOME, in part] on Linux and OS X that are Client-Server based applications in the traditional client-server model.

How much of KDE is written in C/C++ and how much of it is written in Java/.NET?

How much of GNUstep is written in C/ObjC/ObjC++/C++ and how much is written in Java/.NET?

How much of OS X is written in Java/.NET versus C/ObjC/ObjC++/C++?

How much of LaTeX Tools are written in Java/.NET?

How much of Adobe's applications are written in Java/.NET?

Intuit? Corel? Oracle? Sybase? IBM? Sun?

What are Safari, Firefox, IE, OmniWeb, Konqueror, Opera, et. al are written in Java/.NET?

The article is honest. Microsoft wants more people to move to .NET but realizes cutting ties with C/C++ and demanding people switch to C# for general application development would produce an abandoning ship to Linux and OS X tenfold more than they already do.

RE[4]: Good article
by tomcat on Mon 2nd Jun 2008 21:41 UTC in reply to "RE[3]: Good article"
tomcat Member since:
2006-01-06

I think you kind of missed my point. Most app developers don't write the kinds of apps that would require C/C++. Your average corporate or small-business developer doesn't need the horsepower or complexity offered by C/C++; so, .NET and Java applications really work well in those environments. In my company, for example, our support devs write data collection apps in C#. Most of the data goes to payroll/accounting or HR. More and more of those apps are moving from client machines up to web servers. But web applications aren't always possible/useful to all users; for example, the sales folks who are on the road all the time need apps which do projections for them, keep track of expenses, and other stuff. They don't want to VPN into the corporate network to do all of those things, so client apps work for them. The devs who are writing these apps are using C# because C/C++ would be overkill for what they need. The apps are corporate, highly targeted at specific scenarios, and relatively simple. That, really, is what most devs do in the real world. They aren't writing Internet Explorer or KDE or whatever. For THOSE guys, yeah, sure, I'll grant you, C/C++ is the better tool. But those guys only represent a thimbleful of the larger market for developers. All that you have to do is crack open the classified ads and see what sorts of jobs people are looking for. It's a common theme: Java, .NET, databases, web development. You won't see many jobs for C/C++ developers, on average, compared to the others, and I think that is reflected in Microsoft's emphasis on managed code.

RE[2]: Good article
by MollyC on Tue 3rd Jun 2008 02:27 UTC in reply to "RE: Good article"
MollyC Member since:
2006-07-04

"While I liked the article, I found it funny that the author portrayed Microsoft as a company that does not use its own APIs.
I believe the point the author was trying to make is that, for one, Apple themselves are using, for majority of their apps, the framework they are promoting as preferred for OS X development, unlike Microsoft, who still develop most of their software in Win32 instead of .Net. Also, especially when it comes to UI, most new objects in Cocoa and most new frameworks are "librarized" version of code Apple had to implement for their apps, while other frameworks (including .Net) are usually formally designed and then the features they implement are used in actual apps. I personally am still on the fence as to whether this necessarily leads to better framework quality, but still it is an approach quite different to Microsoft's. "

I think most of Microsft new apps are .NET apps. For example, World Wide Telescope is a .NET app. And I believe that the Expression suite (Blend, Media Encoder, etc) are .NET apps. Sure, older apps like Office aren't .NET, but there's no reason to rewrite what already works for no reason.

Also, I recall it took Apple years to finally write the Finder in Cocoa (it was a Carbon app for years).

RE: Good article
by Kroc on Mon 2nd Jun 2008 16:49 UTC in reply to "Good article"
Kroc Member since:
2005-11-10

Visual studio is not written in .NET.
Where you'll find that XCode was written in Obj-C, using XCode.

Microsoft are not dogfooding their own .NET APIs that they are advertising as the way forward for everybody else.

RE[2]: Good article
by google_ninja on Mon 2nd Jun 2008 18:01 UTC in reply to "RE: Good article"
google_ninja Member since:
2006-02-05

They are eating their own dogfood for new development. .Net was not around when VS was first written. The Live suite on the other hand is relatively new. Ditto with media center.

RE[2]: Good article
by joshv on Mon 2nd Jun 2008 18:13 UTC in reply to "RE: Good article"
joshv Member since:
2006-03-18

"Where you'll find that XCode was written in Obj-C, using XCode."

XCode was written using XCode? Really? How'd that work? I image the computers used were also powered by perpetual motion machines that self-assembled in the presence of the RDF.

RE[3]: Good article
by mnemonics on Mon 2nd Jun 2008 18:23 UTC in reply to "RE[2]: Good article"
mnemonics Member since:
2006-04-21

Xcode is the natural son of "Project Builder" (herited from the NeXT days). Xcode was firstly compiled with ProjectBuilder then Xcode was used to compile following versions of Xcode.

It's pretty simple and logical IMO.

Edited 2008-06-02 18:25 UTC

RE[4]: Good article
by apoclypse on Mon 2nd Jun 2008 18:42 UTC in reply to "RE[3]: Good article"
apoclypse Member since:
2007-02-17

I was about to point out the same thing. Regardless of the name changes and different UI, OSX at its core is still NextStep. Liek the author of the article pointed out some of the development tools used today in OSX come from NeXT.

RE[3]: Good article
by evangs on Tue 3rd Jun 2008 06:26 UTC in reply to "RE[2]: Good article"
evangs Member since:
2005-07-07

The same way that GCC compiles GCC and Visual Studio is developed using Visual Studio.

RE[2]: Good article
by tomcat on Mon 2nd Jun 2008 18:26 UTC in reply to "RE: Good article"
tomcat Member since:
2006-01-06

Visual studio is not written in .NET. Where you'll find that XCode was written in Obj-C, using XCode. Microsoft are not dogfooding their own .NET APIs that they are advertising as the way forward for everybody else.


For the VAST number of line-of-business applications, .NET (or Java, if you don't mind a GUI circa 1995) is more than adequate; and, quite frankly, it's advisable, given the RAD development model. Not a lot of people actually write huge apps like Visual Studio or Word. Those that do should pick whatever tool is most appropriate.

I guess it comes down to this...
by thavith_osn on Mon 2nd Jun 2008 15:04 UTC
thavith_osn
Member since:
2005-07-11

...right tool for the right job.

What I did like about this article was that at least it shows that there are good tools and good languages available on the Mac, some guys here may not have used a Mac before or maybe assumed it wasn't up there with other platforms...

Personally, I love Cocoa and Obj-C, but I also love Java, Ruby/Rails and Delphi too... I am just getting into MacRuby too, which might be an interesting way to write apps for the Mac too...

I like Win32 too, sure it has it's problems, but it gets you there in the end (most of the time)... I haven't used C#/.Net very much, but the little I did do was pretty cool...

Oh, just in case anyone is still wondering about how hard it is to learn Obj-C, I came from a C/C++/Java background when I first used Obj-C and had no problem adapting, very very simple... Ruby is more of a mind bender in a lot of ways (good ways ;-)

I don't think its the language that is hard, it's just learning the new APIs, that goes for .Net, JFC, Rails and so on...

Comment by GStepper
by GStepper on Mon 2nd Jun 2008 16:09 UTC
GStepper
Member since:
2006-03-08

The theorical advantage of Java is portability.

- Why are the SUN's cross-plateform application (for instance Open Office) not fully written in Java ?

- Will we ever see a VirtualBox written in Java ? I doubt so...

Numerous other apps could be written using the advantage of portability, however I've never seen photoshop or Cubase written fully in Java. Now a simple clue. Portability's drawback is performance...
Beyond the portability myth are simple facts...

.Net: I'm sorry I can't think of any application that is used everyday by million of users and is written using only .Net/C#....

I have no doubt this is a great plateform for developping application I just wonder why even Microsoft doens't use it for all their home-made application...

Objective-C: Is a very simple OO language, basically an OO layer (the smalltalk way) above plain C.

In contrast, Apple uses this language in virtually all their apps. Millions of people use ObjC written applications. There are thousands applications written using ObjC and Cocoa (or GNUstep).

Guess what ? I love ObjC

RE: Comment by GStepper
by Bending Unit on Mon 2nd Jun 2008 16:26 UTC in reply to "Comment by GStepper"
Bending Unit Member since:
2005-07-06


.Net: I'm sorry I can't think of any application that is used everyday by million of users and is written using only .Net/C#....

Paint.net may not be used by millions but it's a good example of an excellent .Net application.

v RE[2]: Comment by GStepper
by mnemonics on Mon 2nd Jun 2008 16:34 UTC in reply to "RE: Comment by GStepper"
RE[3]: Comment by GStepper
by smashIt on Mon 2nd Jun 2008 17:17 UTC in reply to "RE[2]: Comment by GStepper"
smashIt Member since:
2005-07-06

Paint.net IS not used by millions of users.

Paint.Net 3.31 alone has 2 millons of downloads from downloads.com (and there are other mirrors)´

nikon capture nx is another tool that needs .net (and judging by it's speed is using it alot)

v RE[4]: Comment by GStepper
by mnemonics on Mon 2nd Jun 2008 17:30 UTC in reply to "RE[3]: Comment by GStepper"
RE[4]: Comment by GStepper
by lurch_mojoff on Mon 2nd Jun 2008 17:51 UTC in reply to "RE[3]: Comment by GStepper"
lurch_mojoff Member since:
2007-05-12

Paint.net IS not used by millions of users.

Paint.Net 3.31 alone has 2 millons of downloads from downloads.com (and there are other mirrors)´

nikon capture nx is another tool that needs .net (and judging by it's speed is using it alot)

I really hope that Paint.net or nikon capture nx are not the best examples you can give of a high profile .Net apps, because their usage numbers and the category of their users somehow pale in comparison to those of, say, Motion, Soundtrack Pro, Color, Logic or Aperture. (and those are just the apps made by Apple)

RE[4]: Comment by GStepper
by evangs on Mon 2nd Jun 2008 17:53 UTC in reply to "RE[3]: Comment by GStepper"
evangs Member since:
2005-07-07


nikon capture nx is another tool that needs .net (and judging by it's speed is using it alot)


And that's precisely why anyone who develops software for public consumption stays away from .NET or Java.

RE: Comment by GStepper
by google_ninja on Mon 2nd Jun 2008 18:03 UTC in reply to "Comment by GStepper"
google_ninja Member since:
2006-02-05

.Net: I'm sorry I can't think of any application that is used everyday by million of users and is written using only .Net/C#....


The reason you can't is because the only way to really tell a .net app at this point (from a user point of view) is the unhandled exception dialog.

RE[2]: Comment by GStepper
by memson on Tue 3rd Jun 2008 09:44 UTC in reply to "RE: Comment by GStepper"
memson Member since:
2006-01-01

The reason you can't is because the only way to really tell a .net app at this point (from a user point of view) is the unhandled exception dialog.


Dragging the exe on to Reflector is more technical, but yields faster results.

Microsoft Management Studio for Sql Server is at least in part written in DotNet. The shell app seems not to be (or MS hacked it to look like it isn't), but the tonne of assemblies it uses say different.

RE[3]: Comment by GStepper
by google_ninja on Tue 3rd Jun 2008 11:29 UTC in reply to "RE[2]: Comment by GStepper"
google_ninja Member since:
2006-02-05

yeah, i was talking from an end user point of view. the rendering engines of both avid and sony vegas also use .net, but im pretty sure the main apps dont

This guy simply has no clue
by TBPrince on Mon 2nd Jun 2008 18:17 UTC
TBPrince
Member since:
2005-07-06

This is the worst series of fanboy articles disguised as technical. This guy has simply no clue, even if he claims to be a developer.

Pearls of wisdom:

* Summary : "WinForms is bad. Java is much better designed."
That must be because basically not a single Java desktop program is installed on ANY of my PCs while I use many Winforms ones. Go figure.

* Summary : "Apple loves developers so that's why they give developers tools out for free. Microsoft instead tries to monetize its developers... thus Microsoft don't understand that more developers means more software for your platform"
Yeah very! Could it be that Apple desperately needs more developers while Microsoft has loads of it writing new apps?

* Summary : "Great! Apple "innovated" (lol!) by introducing Core Audio, Core Video, Core Data so developers don't need to write their own modules! YaY!"
Do you mean Apple introduced what Windows provided like 13 years ago? YaY!

(and these last two are my favourites...)
* Citation: "Finally, Apple also gives away Quartz Composer, which I have to give a shout out to. Although I have no practical use for it, I'm sure someone does, and it's really rather funky."
no words for it...

* Citation: "For example, a kind of "palette" window used for inspecting and adjusting object properties was used in iPhoto and other applications. This is something that lots of software can make use of, and so with Mac OS X 10.5, a system-level palette window was introduced. Instead of a proliferation of slightly different first- and third-party implementations of the concept, Apple has taken a good idea and exposed it to any developer."
System-wide palette for developers to use... rather innovative ;-D

I mean, if this guy is pretending, he's great... really...

If he's not pretending... gosh! If I was Jobs, after reading this, I would wonder "Where the hell am I doing wrong?!?!?" ;-P

RE: This guy simply has no clue
by evangs on Mon 2nd Jun 2008 19:01 UTC in reply to "This guy simply has no clue"
evangs Member since:
2005-07-07


* Summary : "WinForms is bad. Java is much better designed."
That must be because basically not a single Java desktop program is installed on ANY of my PCs while I use many Winforms ones. Go figure.


A well designed API from a programmers point of view doesn't necessarily mean you will see it a lot as a user. The majority of client side code you will come into contact with as a Windows user is going to be written in Win32. No one will claim Win32 is well designed, not unless they've had 5 - 6 beers.


* Summary : "Apple loves developers so that's why they give developers tools out for free. Microsoft instead tries to monetize its developers... thus Microsoft don't understand that more developers means more software for your platform"
Yeah very! Could it be that Apple desperately needs more developers while Microsoft has loads of it writing new apps?


You've missed the point. Apple needs many 3rd party developers and they've done a lot to reduce the barrier to entry by making their development tools free. Microsoft too need as many 3rd party developers as they can get. Sadly, the tools are all commercial. Stuff like Shark, Instruments, the stuff in /Developer/Applications/Performance all come for free with Xcode, but you'd need high end VS to get it.


* Summary : "Great! Apple "innovated" (lol!) by introducing Core Audio, Core Video, Core Data so developers don't need to write their own modules! YaY!"
Do you mean Apple introduced what Windows provided like 13 years ago? YaY!


You accuse the author of being a fan boy, and yet you make asinine comments like this? You have clearly no idea what Core Audio and Core Video do.


System-wide palette for developers to use... rather innovative ;-D


Have you see the palettes he's talking about? When Apple introduces a new UI theme/widget, it's available to all developers from the get go. How long did it take C++ developers on Windows to get access to ribbons?

Though I agree with you that Quartz Composer is a waste of time though it does allow you to create some very amazing looking demos. Pity I have the artistic ability of a hippopotamus.