Slashdot Mirror


Objective-C Enters Top Ten In Language Popularity

bonch writes "Objective-C has entered the top 10 of the Tiobe Programming Community Index. Last year, it was at #39. The huge jump is attributed to its use in iPhone and iPad development. C, of which Objective-C is a strict superset, has reclaimed the #1 spot from Java, which slides to #2. Tiobe also explains how it determines its rankings."

351 comments

  1. Tiobe also explains how it determines it rankings by Colin+Smith · · Score: 5, Funny

    Don't they just google it like the rest of us?

     

    --
    Deleted
  2. "how it determines it rankings" by MrEricSir · · Score: 0, Offtopic

    Does it explain it how is babby formed?

    --
    There's no -1 for "I don't get it."
    1. Re:"how it determines it rankings" by scuzzlebutt · · Score: 1, Funny

      I'm sorry for your lots.

      --
      In C++, your friends can see your privates.
    2. Re:"how it determines it rankings" by Anonymous Coward · · Score: 0

      You have to in her base... or "accidentally" in her base.

      Wait 40 weeks

      Babby!

  3. Where are the C development jobs? by Anonymous Coward · · Score: 0

    Where are the C development jobs? I have strong C skills, but everything is Java/C++/PHP/Ruby/worse.

    1. Re:Where are the C development jobs? by localman57 · · Score: 4, Insightful

      Embedded Systems. There's lots of work there. And we're getting more valuable all the time, because Universities are increasingly teaching C#, Java, etc. The number of people out there who can program a microprocessor right down to the metal is dropping each year.

    2. Re:Where are the C development jobs? by ClosedSource · · Score: 4, Funny

      Unfortunately the number of projects that require people who can program right down to the metal has also been dropping each year.

    3. Re:Where are the C development jobs? by Panaflex · · Score: 2, Insightful

      They're everywhere! Sure, lots of people say they're writing C++ code (or, C code wrapped in C++), or application development. A lot of C development is OSS too - there's paid work in that area as well. There's TONS of maintenance work, especially in specialized industry controls, monitoring, whatever.

      In other words, it's all around you - just shrouded in mystery. Not many people advertise new C development, but oftentimes it is just a another tool in a developer's arsenal.

      --
      I said no... but I missed and it came out yes.
    4. Re:Where are the C development jobs? by localman57 · · Score: 4, Informative

      On the higher end platforms, this is true. Projects based on ARM, PowerPC, Infineon Tri-Core, etc projects are definately using a higher level of abstraction, with more developers programming at those levels, and a small number working in device drivers and board-support packages. \ But the flipside is that intellegence is being distributed into lots of devices (automotive being the best example, but also appliances, utility meters, medical devices, etc). Most of these run on small, self-contained micros which cost only a few dollars. C is far and away the language of choice on these platforms. Developers with the knowledge to allow you to get every last drop of performance out of a $2.37 micro, so you don't have to buy the $2.52 one, are in great demand. When you build 100,000 of something, you can afford some up-front development cost to save $.15

    5. Re:Where are the C development jobs? by Chris+Burke · · Score: 4, Funny

      Where are the C development jobs? I have strong C skills, but everything is Java/C++/PHP/Ruby/worse.

      Worse? Fortran? Cobol? Ada?

      Dare I say, Intercal?

      Brainfuck?!

      --

      The enemies of Democracy are
    6. Re:Where are the C development jobs? by Locke2005 · · Score: 4, Funny
      --
      I've abandoned my search for truth; now I'm just looking for some useful delusions.
    7. Re:Where are the C development jobs? by DrXym · · Score: 4, Insightful
      Go for a C++ job then. Or suck it up and learn a few languages.

      The reason Java and other languages are more prominent these days is because they are more suitable for most business requirements - reliability, scalability, portability etc. Unless an app has to hit the metal, or has hard speed / memory / CPU requirements, chances are C is not the right language to write in any more.

    8. Re:Where are the C development jobs? by blair1q · · Score: 1

      C has limitations and is inefficient as a solution to many problems (though of course it is ideal for others).

      If C is the only language you feel comfortable in, you need to get more practice with something else.

      Honestly, if you haven't gotten enough exposure to C++ by now to be able to bluff your way into a gig, you've been slacking hard.

    9. Re:Where are the C development jobs? by Anonymous Coward · · Score: 0

      Ada is better than C as a language. C's edge comes from strong library support.

    10. Re:Where are the C development jobs? by AstrumPreliator · · Score: 1

      Or Piet?

      If you can tell me what this program in Piet does (without looking at the file name) then you have a job!

      Disclaimer: I wrote two different interpreters for this language and I am working on a third one. I am quite likely insane.

    11. Re:Where are the C development jobs? by Anonymous Coward · · Score: 0

      Operating system kernel, device drivers, and all sort of embedded device firmware.

      I hope you don't have just "strong C skills", as those actually require strong software engineering and CS skills as well ;-)

    12. Re:Where are the C development jobs? by gbjbaanb · · Score: 1

      When you build 100,000 of something, you can afford some up-front development cost to save $.15

      That's only $15000. The thing is, these places build 10,000,000 of them. Then you realise why your cheap-ass no-name gadget has such a cheap plasticky cover.

    13. Re:Where are the C development jobs? by dkleinsc · · Score: 1

      Hey, there's even a modern web framework for Cobol!

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
    14. Re:Where are the C development jobs? by Draek · · Score: 1

      You know, I've been learning Ada these past couple months and I find it to be a thing of beauty, one of the most elegant languages I've ever had the pleasure to use. And besides, its F/OSS support is incredible for such a non-mainstream language.

      So yeah, this post is off-topic as hell but, for anyone interested in learning a new language, don't be discouraged by the above poster putting Ada besides the attrocity inflicted upon mankind under the name of Cobol and do give it a try.

      --
      No problem is insoluble in all conceivable circumstances.
    15. Re:Where are the C development jobs? by lgw · · Score: 2, Informative

      Learn Java if you enjoy solving the same business problems over and over again. Kernel programming is still C. Most "C++ jobs" neuter C++ down to the point you're really just using C with classes, easy to pick up if you know C.

      I recently had lunch with a friend of mine who manages Java development. He's switching jobs because the company is switching to $10/hour Java coders, and he wants nothing to do with that. To the current business mindset, if the problem is best solved with Java, it's best solved from another country.

      For some reason this isn't as much of a problem with C# (perhaps because there's so much less open source available in C#), but of course you're competing in a world labor market in any language, it's just a matter of degree.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    16. Re:Where are the C development jobs? by Anonymous Coward · · Score: 0

      Var'aq? The Klingon programming language

    17. Re:Where are the C development jobs? by Albatrosses · · Score: 1

      I totally misread that URL as "colon clogs" the first time through... Actually, no, that sounds about right :p

    18. Re:Where are the C development jobs? by jonadab · · Score: 1

      I need to hire a skilled Malbolge programmer.

      The position requires five years of job experience programming in Malbolge in a team programming environment. Experience programming network services, databases, and printer drivers in Malbolge is desirable. Please submit a portfolio of your previous work in the language, along with your resume and three references, including at least one former supervisor, one former coworker who is a fellow Malbolge programmer, and one character reference, preferably a minister.

      A strict formal dress code and standards of professional conduct will be enforced. Relocation may be required, to a location that will not be disclosed in advance of hiring. Salary is to be negotiated after you sign the thirty-year contract.

      Thanks.

      --
      Cut that out, or I will ship you to Norilsk in a box.
    19. Re:Where are the C development jobs? by Chris+Burke · · Score: 1

      The image -- I mean source code -- is blocked, but the WP page on piet gave me the gist. That's pretty cool, actually. Art deco computer programs.

      Regarding your insanity -- I won't be truly impressed until you write a self-hosting Piet compiler in Piet. ;)

      --

      The enemies of Democracy are
    20. Re:Where are the C development jobs? by brantondaveperson · · Score: 1, Flamebait

      What exactly are 'strong C skills' ? C is about the simplest language out there, and the important skills are more in the direction of debugging, teamwork, and so on.

      Really, knowing C well doesn't really prove anything.

    21. Re:Where are the C development jobs? by Anonymous Coward · · Score: 0

      Isn't C++ just C with classes?

    22. Re:Where are the C development jobs? by Chris+Burke · · Score: 1

      I'm just mad that they didn't name it Lovelace.

      --

      The enemies of Democracy are
    23. Re:Where are the C development jobs? by BenoitRen · · Score: 1

      definately

      Definitely. DEFINITELY!

    24. Re:Where are the C development jobs? by onionman · · Score: 1

      Where are the C development jobs? I have strong C skills, but everything is Java/C++/PHP/Ruby/worse.

      If you have strong C skills, then you should be able to pick up Java in a week or two. Once you've got the object-oriented approach from Java, teach yourself C++ (which is like a dirty version of Java that lets you do naughty things). After that, all you need to program in an other useful language is a manual. (Functional languages are their own bag of fun, but I've yet to see a job add that says "strong Lisp skills needed".)

      Personally, I think the world needs more Ada projects.

    25. Re:Where are the C development jobs? by Bing+Tsher+E · · Score: 1

      The chip vendors won't even send out a salesman if your projected volume is only 100k.

    26. Re:Where are the C development jobs? by Anonymous Coward · · Score: 0

      Bloomberg L.P. has lots of openings for C and C++ programmers right now. Entry level to senior.

      http://about.bloomberg.com/careers_html.html

    27. Re:Where are the C development jobs? by JoeMerchant · · Score: 1

      100000 x 0.15 = $15K, that doesn't pay for very much of my time....

    28. Re:Where are the C development jobs? by JoeMerchant · · Score: 1

      Apple _might_ build 10M iPads before the design is completely revamped. The number of single design quantity 10M products out there is surprisingly small - it takes years to sell/install that many of anything, over those years the design tends to get "optimized" several times. A good system will maintain software compatibility across the generations, but most stuff is useless after 10 years.

    29. Re:Where are the C development jobs? by JoeMerchant · · Score: 2, Funny

      The chip vendors won't even send out a salesman if your projected volume is only 100k.

      You must be exceptionally rude to them, I can't get them to stay away and our volume is sub-thousand.

    30. Re:Where are the C development jobs? by Skuto · · Score: 1

      Try this with Broadcom or Xilinx :)

    31. Re:Where are the C development jobs? by Macrat · · Score: 1

      Where are the C development jobs? I have strong C skills, but everything is Java/C++/PHP/Ruby/worse.

      Worse? Fortran? Cobol? Ada?

      Dare I say, Intercal?

      Brainfuck?!

      Perl?

    32. Re:Where are the C development jobs? by sl149q · · Score: 1

      Current estimates for calendar 2010 sales range from 6-10 million iPads...

      They have already sold 2 million. And it is likely to be high on many Christmas gift lists.

      You could quibble that the iPad is not a *single* design of course. Two versions in three different memory sizes...
       

    33. Re:Where are the C development jobs? by DrXym · · Score: 2, Interesting
      Learn Java if you enjoy solving the same business problems over and over again. Kernel programming is still C. Most "C++ jobs" neuter C++ down to the point you're really just using C with classes, easy to pick up if you know C.

      Why else would a business be hiring you except to solve their problems? Even kernel programming (the few places that require it) are still to address business problems. You might find yourself writing drivers for example.

      I recently had lunch with a friend of mine who manages Java development. He's switching jobs because the company is switching to $10/hour Java coders, and he wants nothing to do with that. To the current business mindset, if the problem is best solved with Java, it's best solved from another country.

      Someone hiring $10 hour coders will get exactly what they deserve. I used to work for a financial firm that set up a large Indian operation (something like 2000 employees). The theory was US programmers cost the company $300 a day, the Indian ones $90 a day. Of course the quality of code was atrocious, development times were far longer, the business knowledge was non-existent, staff were apathetic and and the turnover / retraining was high. So yeah on paper it looked cheap but they got shit for that. After 2 or 3 years of putting up with substandard quality, they sold their Indian operation but they still outsource stuff to India.

      For some reason this isn't as much of a problem with C# (perhaps because there's so much less open source available in C#), but of course you're competing in a world labor market in any language, it's just a matter of degree.

      C# and Java have their own way things of doing stuff but fundamentally they are interchangeable technologies. I expect the labour market for C# is weaker than Java but at the same time its not a niche language. My own opinion is there are plenty of C# and Java jobs out there and if you are in any way competent and can convey that competence during an interview you should have no problem finding a job.

    34. Re:Where are the C development jobs? by Alioth · · Score: 1

      All I did was buy a handful (~45) Xilinx XC9572XL CPLDs and download Webkit ISE and now I get constant spam from Xilinx :-)

      OK, so it's hardly sending out a salesman (and well, it's not really spam, I often have a quick read of their mails) but obviously they take some effort to keep in touch with all potential customers, even if it's not a lot.

    35. Re:Where are the C development jobs? by Alioth · · Score: 1

      I'm not sure it has, you probably don't hear about them much because they aren't sexy - that's all. After all, a job writing code for an Atmel ATtiny13 based device (which has 1K flash and 64 *bytes* of RAM and costs about $0.25 even in relatively low volumes) is hardly sexy. You find things like this in all sorts of devices right down to things like bicycle lights and toasters which are sold in tens of millions. The trendy IT press is not going to be writing stories about people who write code for toasters when they can go on about the newest sexy Microsoft proprietary language. It's also something for which the highest level language you'd ever consider would be C, and there's a good chance you'll just use asm.

    36. Re:Where are the C development jobs? by dintech · · Score: 1

      Arrgh! How can I unsee it?!!

    37. Re:Where are the C development jobs? by gbjbaanb · · Score: 1

      who said anything about the iPad, I was really referring to any generic gadget, think how many no-brand mp3 players are sold, the 15c saving adds up; how many washing machines with an embedded controller, etc.

      there's a lot of stuff out there that do get produced in the millions or units range. Admittedly they tend to be cheaper than the iPad.

    38. Re:Where are the C development jobs? by Just+Some+Guy · · Score: 1

      That site is fake. All the supposed programmers are under the age of 60.

      --
      Dewey, what part of this looks like authorities should be involved?
    39. Re:Where are the C development jobs? by Renegade88 · · Score: 1

      Nice post, Draek. I'm also discovering the beauty of Ada and it's actually ruining other languages for me!

    40. Re:Where are the C development jobs? by ChrisMaple · · Score: 1

      The phrase "business problems" in this context means financial calculations. Development of new products is not generally considered a "problem" unless you believe that new things should appear by magic.

      --
      Contribute to civilization: ari.aynrand.org/donate
    41. Re:Where are the C development jobs? by trialcode · · Score: 1

      I agree the language is easy. But, using it correctly and responsibly isn't. C is like Lisp in that there are no artificial limits on what you're allowed to do. Not all solutions are equal though and it takes experience and good taste to choose the right path.

    42. Re:Where are the C development jobs? by JoeMerchant · · Score: 1

      I just brought up "the pad" because it's the latest sales sensation, recently passing 2M units. My main point was that when things are produced in the millions, it is usually done in batches across a period of time, and each batch tends to be redesigned / optimized based on current market conditions.

      Whoever wrote the horrid MP3 browsing / playing code that appeared on every cheap (and not-so-cheap) DVD player from 2003-2008 will rot in a special hell, that was some widely distributed crapware.

    43. Re:Where are the C development jobs? by Reservoir+Penguin · · Score: 1

      This is just more racist/nationalist bs. American programmers are not some god-chosen people. Indian or Russian programmers are not any worse because they get USD10/h instead of USD30/h. This has more to do with the cost of living than with cheap labour exploitation.

      --
      US-UK-Israel: The real Axis of Evil
    44. Re:Where are the C development jobs? by DrXym · · Score: 1
      It's not racist and it's not BS. Clearly you have never worked with large operations in India or you would know exactly what I mean. Places like Bangalore have so many outsourcing operations that people stay one place for six months and then move on somewhere else. Staff retention is abysmal. Consequently the business knowledge is nonexistent, the development times treble and quality of work is down the toilet. What you pay is what you get and what you get from outsourced development is truly awful. I've seen it happen on countless projects that I was liaising with.

      It has nothing to do with the intelligence of the people but the setup and the belief that you can just set up shop in these countries and get the same quality of work for 1/3 price as if coding were some assembly plant. Because you can't.

  4. What language for business logic? by tepples · · Score: 4, Interesting

    There is one popular computing platform that requires all programs to be written in Objective-C. There is another popular computing platform that requires all programs to be written in one of the many languages that compile to verifiably type-safe CLR bytecode, but Objective-C is not one of those languages. So if I want to develop an application for both of these platforms, in what language should I express the business logic of the application so that it can be automatically translated into Objective-C and into a CLR-friendly language?

    1. Re:What language for business logic? by Michael+Kristopeit · · Score: 0

      it all depends on what types of data and control structures the application utilizes.

    2. Re:What language for business logic? by tepples · · Score: 1

      Can you give some examples of data and control structures that would lead to the choice of one language for the business logic as opposed to another language for the business logic?

    3. Re:What language for business logic? by 0racle · · Score: 5, Insightful

      I believe the answer is C.

      The answer is always C.

      --
      "I use a Mac because I'm just better than you are."
    4. Re:What language for business logic? by SanityInAnarchy · · Score: 2, Insightful

      There is one popular computing platform that requires all programs to be written in Objective-C.

      Does it? I thought Apple allowed a few other languages, like plain C/C++...

      So if I want to develop an application for both of these platforms, in what language should I express the business logic of the application so that it can be automatically translated into Objective-C and into a CLR-friendly language?

      Unfortunately, the answer would probably be XML. Lots and lots of XML. Just make sure it's not Turing-complete...

      A saner answer (but one I like less) is to develop something which compiles Objective-C to CLR. Maybe it'd work at a higher level (compile Objective-C to C#), or maybe at a lower level (translate Objective-C bytecode to CLR), but either way, that's your only option, because the iStuff is the only platform which actually bans source language. If they found out you did it the other way around (starting in C# and compiling to Objective-C bytecode), they'd kill your app.

      That or just build a web app.

      --
      Don't thank God, thank a doctor!
    5. Re:What language for business logic? by spazdor · · Score: 2, Funny

      Pseudocode.

      (where "automatically" = "delegated to PFY intern.")

      --
      DRM: Terminator crops for your mind!
    6. Re:What language for business logic? by Michael+Kristopeit · · Score: 0
      if the application can be written so it just requires generic variables (such as PHP's variable implementation) where sanity checking is part of the application and not the platform, then it should be very easy to write your own translator in any language you choose.

      if the application relies on the platform to enforce variable types, then additional code will have to be inserted for platforms that don't provide such strict typing, a much more complicated task.

      i prefer to code in PHP for business logic apps and roll my own type checking, same as i prefer to code in C for server daemons and roll my own memory management...

    7. Re:What language for business logic? by Mitchell314 · · Score: 1

      There is one popular computing platform that requires all programs to be written in Objective-C.

      Does it? I thought Apple allowed a few other languages, like plain C/C++...

      Not on the iPhone (and I assume neither for any of Apple's current non-laptop devices). But for the laptop, yeah, there are plenty of languages.

      --
      I read TFA and all I got was this lousy cookie
    8. Re:What language for business logic? by pauljlucas · · Score: 4, Informative

      I thought Apple allowed a few other languages, like plain C/C++...

      They do, but if you want to use any of the functions for things like, say, UI, you need to use Objective-C at some point because their API is only in Objective-C.

      --
      If you reply, do so only to what I explicitly wrote. If I didn't write it, don't assume or infer it.
    9. Re:What language for business logic? by larry+bagina · · Score: 1

      you can use llvm to compile Objective C into CLR (or java, if that's your thing).

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

    10. Re:What language for business logic? by Mitchell314 · · Score: 1

      I c.

      --
      I read TFA and all I got was this lousy cookie
    11. Re:What language for business logic? by Ukab+the+Great · · Score: 0

      A sign of good application architecture is that it can stay the same even if the application is rewritten in a totally different OOP language.

    12. Re:What language for business logic? by Mitchell314 · · Score: 1

      I think you can do carbon stuff in plain ol' C, albeit painfully. And of course there's Java.

      --
      I read TFA and all I got was this lousy cookie
    13. Re:What language for business logic? by dgatwood · · Score: 4, Insightful

      You will, however, almost certainly not share a single line of UI code between a .Net application and an iPhone application anyway. Even if you could write Objective-C code for .Net, you wouldn't be able to make UIKit calls on the other device, making it a moot point. Likewise, even if you could write code in C# for iPhone, you would not have support for Windows UI calls.

      The way you write code in situations like this is an abstraction layer. You write the core code in C or C++, then write an iPhone UI in Objective-C and a WinMo UI in... whatever, and similarly abstract out file reads/writes, etc. You write custom OS-specific code near the boundaries between the OS and your app, then write the core code in a language that's cross-platform.

      For maximum convenience, you should also consider using Core Foundation where possible. You can build and include CFLite for the other devices, and as long as you restrict yourself to that subset of the API, you'll be fine. And on the iPhone side, you can then take advantage of toll-free bridging to use most of those CF objects as though they were the equivalent NS (Foundation) objects.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    14. Re:What language for business logic? by Moridineas · · Score: 2, Informative

      Not on the iPhone (and I assume neither for any of Apple's current non-laptop devices). But for the laptop, yeah, there are plenty of languages.

      Where are you getting this information? I think you might be confused because OSX is not a "laptop" operating system, it covers Mac mini, laptops, and desktops (Mac Pro, imac, etc).

      The clause, section 3.3.3, now reads:

      "Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited)."

      (http://www.appleinsider.com/articles/10/04/08/apples_iphone_4_sdk_license_bans_flash_java_mono_apps.html)

    15. Re:What language for business logic? by Moridineas · · Score: 4, Informative

      I think you must be confused. That would be pretty hard to do, since Objective C is a superset of C! In any case, you're explicitly wrong:

      The clause, section 3.3.3, now reads:

      "Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited)."

      (http://www.appleinsider.com/articles/10/04/08/apples_iphone_4_sdk_license_bans_flash_java_mono_apps.html)

    16. Re:What language for business logic? by Moridineas · · Score: 4, Insightful

      Somewhat interesting to look at (e.g.) the Wolfenstein 3D iphone code...to see just how little Objective-C there can be!

    17. Re:What language for business logic? by SanityInAnarchy · · Score: 1

      No, I was talking about the iPhone. It's not just Objective-C or GTFO. From this page (haven't seen the agreement itself, it's surprisingly difficult to get if I don't want to actually become an iPhone developer):

      Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine...

      So it's Objective-C, C, C++, JavaScript on WebKit, or GTFO.

      Still sucks, but it's at least theoretically possible to develop a cross-platform C or C++ app, assuming the other platforms allow them.

      Which still sucks sucks -- basically, your UI gets to be rewritten entirely for each platform, and your "business logic" has to be written with the "native toolkit", in one of the lowest-level languages you could use, which is the exact fucking opposite of how it should be.

      --
      Don't thank God, thank a doctor!
    18. Re:What language for business logic? by Mitchell314 · · Score: 1

      Sorry, I meant laptop/desktop. Haven't seen a mac desktop in so long that I forgot they exist. I thought I remembered seeing something in one of Apple's reference documents that the iphone is practically restricted to obj-c. Can't find it, so I probably misremember it.

      --
      I read TFA and all I got was this lousy cookie
    19. Re:What language for business logic? by Moridineas · · Score: 1

      Unfortunately Apple seems to be killing carbon and I think Java/Cocoa is officially deprecated now.

    20. Re:What language for business logic? by fusiongyro · · Score: 1, Informative

      If you want to develop a cross-platform app for the iPhone and iPad, you're fucked, so don't bother.

      If you want to develop a cross-platform GUI app for Mac OS X, Linux and Windows, your best bet is probably to use Qt, which means C++.

    21. Re:What language for business logic? by blair1q · · Score: 2, Insightful

      A sign of any real application architecture is that it can't.

      The problem isn't in the abstractions in the middle of the program. Those can generally be translated all over the place.

      The problem is at the edges, where the program has to interface with the system (and via the system with the user and other peripherals).

      Not many languages abstract those things in ways that allow applications to just drop in. Which is why everywhere you go someone has come up with the idea of an abstraction layer, so their goodies aren't strongly coupled to a platform in a way that prevents them from moving to a new platform.

      This isn't limited to porting between languages. Even in one language, porting between systems gives you the idea to put in an abstraction layer, thinking all you'll have to do is reimplement that layer for the next system.

      And the concept of an operating system is a successful example of such a layer, but of course nobody gets that, so they have to abstract a layer between the app and the OS as well.

      I've made a good living working around those mistakes.

    22. Re:What language for business logic? by gbjbaanb · · Score: 1

      So if I want to develop an application for both of these platforms, in what language should I express the business logic of the application

      Dalvik.

      Oh ok then, you want C++ - iPhone can be developer using C/C++, and a subset of C++ can compile to the CLR. Just ignore managed C++ STL, its slow as you can imagine. (yes, and you can write C/C++ apps for Android too). The major thing to remember when architecting your apps is to decouple the GUI so you can slap a C#/Obj/Java GUI on top.

    23. Re:What language for business logic? by h4rm0ny · · Score: 1


      (5pts) Is the above statement...

      A. Always right. B. Never right. C. Sometimes right.

      --

      Aide-toi, le Ciel t'aidera - Jeanne D'Arc.
    24. Re:What language for business logic? by Anonymous Coward · · Score: 1, Insightful

      I disagree that this is the opposite of how it should be. The 3.3.3 terms are designed to prevent people from writing "least common denominator" user interfaces that don't look or behave appropriately for an iPhone app. If you want to make a good interface for your application you should be writing it separately for each platform. The only real exception is games which generally implement their own UI using OpenGL, so they don't have a problem.

      Core logic should be written in a way that it can be used on multiple platforms, which usually means C or C++. I don't see a problem there, though it would be better to have other options like C# (MonoTouch) as well.

      Business logic, that which binds things together, unfortunately is alienated by this because you will have to write in a low level language. The only high level scripting language permitted is JavaScript, and you'll have to jump through hoops to use that outside the context of WebKit. Python, Lua, Ruby, etc. are out, which is a shame.

    25. Re:What language for business logic? by bonch · · Score: 1

      Objective-C++ allows you to mix C++ and Objective-C, and standard C code will always work since Objective-C is C with a Smalltalk messaging runtime implemented on it. The iPhone APIs are mostly Objective-C with C reserved for the lower-level technologies.

    26. Re:What language for business logic? by Anonymous Coward · · Score: 0

      XML

    27. Re:What language for business logic? by aztracker1 · · Score: 1

      Windows aps don't require .Net bytecode, any more than Linux apps require Python. Just the same, .net has pretty clean access to system libraries written in C, as do other environments/languages. I think that plain C is pretty safe for underlying systems code, but would probably go with a higher level language for non-3d gaming UIs.

      --
      Michael J. Ryan - tracker1.info
    28. Re:What language for business logic? by jonadab · · Score: 0

      > So if I want to develop an application for both of these platforms,
      > in what language should I express the business logic of the application

      Perl. Every major platform comes with Perl out of the box except for MS Windows, and you can either distribute one of the various Windows versions of Perl with your application, or else use PAR or something along those lines to bundle your application and Perl into a single executable file. There are other options too, but I would use Perl.

      The hard part is deciding what widget toolkit to use (assuming you want to create a GUI app; if you're aiming more for a command-line interface, then this issue just goes away).

      Perl, like any major programming language, of course has libraries for all the major widget sets (and some of the minor ones), but that doesn't really answer the question. Some people are really only going to be happy if you use the "native" widgets on each platform, but that pretty much shoots the whole idea of cross-platform design right out the nearest window. You could use a widget set that's available on all the platforms (GTK, for instance), but it won't feel fully native on every platform. You could use a "wrapper" set (e.g., wxWidgets), but then you either have to limit yourself to doing things that can be done in all the sets it wraps, or else you need a bunch of platform-specific (or widget-set-specific) code. You could create your own wrapper set, but that way lies madness.

      Or you could run your code on a server and give it a web-based interface and let people access it through a browser. This completely sidesteps the whole issue of widget sets, though it is of course not without limitations of its own.

      --
      Cut that out, or I will ship you to Norilsk in a box.
    29. Re:What language for business logic? by aztracker1 · · Score: 1

      That's where the V in MVC comes from... the View can be a native binding for whatever, or through a thin controller/router to a contller and models managed in a core language.. though Apple seems to be allowing MonoTouch based apps into the App Store. Which would allow for apps for both, with different UIs, but all in C#. Just the same, you can create Windows apps in C/C++, no .Net CLR required.

      --
      Michael J. Ryan - tracker1.info
    30. Re:What language for business logic? by Moridineas · · Score: 1

      I am perhaps inured to desktop macs, as they are all around me at work ;)

      I guess the iPhone is "practically" restricted to objc...objc is a superset of C, so C is implicitly allowed, and C++ is too (Objective-C++ is a language variant of objc).

    31. Re:What language for business logic? by TheRaven64 · · Score: 4, Interesting

      No you can't. Well, you can (in theory, except that back end is painfully buggy), but you also need to use Clang and LLVM to compile an Objective-C runtime for the CLR. You can't compile the Apple one, because it contains per-platform assembly for the message sending, but you can (in theory) compile the GNU one, which is portable. You then end up running one object model on top of another object model, with two conflicting memory models. If anything nontrivial works, you deserve a prize.

      (I am the maintainer of the GNUstep Objective-C 2 runtime and the author of the GNU runtime support and a few other bits of Objective-C in Clang).

      --
      I am TheRaven on Soylent News
    32. Re:What language for business logic? by SanityInAnarchy · · Score: 1

      If you want to make a good interface for your application you should be writing it separately for each platform.

      I strongly disagree.

      Yes, you should be adapting it to each platform. Yes, I can see where Apple purists would be annoyed that people don't, and they're downright gleeful that people are forced to properly support iPhone.

      No, you should not have to rewrite every single UI component when porting between two very similar platforms.

      Core logic should be written in a way that it can be used on multiple platforms, which usually means C or C++.

      Or higher-level languages like Java, Python, Ruby, etc. For most apps, C, or even C++, is a terrible choice. That was my point.

      And that's where this seems precisely the opposite of the way it should be. The UI gets written in high-level languages like Objective-C and Java, for even higher-level toolkits -- in most business-y apps, you want the UI to be fast, responsive, and asynchronous, so the user isn't kept waiting. In games, you want the UI to be even faster, as that includes all your 3D stuff. In either case, it's very rare that you want your model to be very low-level.

      --
      Don't thank God, thank a doctor!
    33. Re:What language for business logic? by Anonymous Coward · · Score: 0

      You misspelled fortunately.

    34. Re:What language for business logic? by Anonymous Coward · · Score: 0

      This is incorrect, you can send any Objective-C message from C using objc_msgsend

      http://developer.apple.com/iphone/library/documentation/Cocoa/Reference/ObjCRuntimeRef/Reference/reference.html#//apple_ref/c/func/objc_msgSend
      http://stackoverflow.com/questions/2573805/using-objc-msgsend-to-call-a-objective-c-function-with-named-arguments

    35. Re:What language for business logic? by s73v3r · · Score: 1

      Are we talking Windows desktop apps, or Windows Phone apps? Because Microsoft has said there will be no native development on Windows Phone 7, only .NET stuff.

    36. Re:What language for business logic? by Anonymous Coward · · Score: 0

      No. Only Obj-c has bindings for cocoa touch (the ui stuff).

    37. Re:What language for business logic? by tepples · · Score: 1

      I thought Apple allowed a few other languages, like plain C/C++

      Objective-C includes C, and portable C++ isn't verifiably type-safe on the CLR.

    38. Re:What language for business logic? by tepples · · Score: 1

      Say I have a program written in language A, and I rewrite the program in language B. Then I correct a defect that I have discovered in the program in language A, but the same defect exists in the program in language B. How do I have the computer update the program in language B based on the changes to the program in language A?

    39. Re:What language for business logic? by tepples · · Score: 1

      Imagine that I want to develop a cross-platform video game for Mac OS X, Windows, Linux, Android, and Xbox 360. The trouble is that unless the developer works for a big company in a big city, the Xbox 360 platform requires verifiably type-safe CLR bytecode, and though C++/CLI compiles to CLR bytecode, just about any program written in standard C++ will use constructions that are not verifiably type-safe.

    40. Re:What language for business logic? by Sulphur · · Score: 1

      There goes the old multiple guess test.

    41. Re:What language for business logic? by tepples · · Score: 1

      Perl. Every major platform comes with Perl out of the box except for MS Windows

      iPhone OS doesn't come with Perl either.

      Or you could run your code on a server and give it a web-based interface and let people access it through a browser.

      Then the application would fail on a device without an always-on connection to the Internet. Specifically, it wouldn't work on an iPod Touch, iPad, or Archos tablet while away from Wi-Fi.

    42. Re:What language for business logic? by tepples · · Score: 1

      i prefer to code in PHP for business logic apps

      As I understand it, neither the Objective-C-only platform nor the .NET-only platform can run PHP.

    43. Re:What language for business logic? by Anonymous Coward · · Score: 2, Informative

      Objective C is much closer to Java than to C. They both have dynamic runtimes and the latest Objective C is garbage collected.

      It would be just as stupid to say that C# is a C derivative when it's about as close to a Java clone as you can get.

    44. Re:What language for business logic? by shutdown+-p+now · · Score: 2, Insightful

      There is one popular computing platform that requires all programs to be written in Objective-C. There is another popular computing platform that requires all programs to be written in one of the many languages that compile to verifiably type-safe CLR bytecode, but Objective-C is not one of those languages. So if I want to develop an application for both of these platforms, in what language should I express the business logic of the application so that it can be automatically translated into Objective-C and into a CLR-friendly language?

      Quite obviously, a subset of Objective-C that can be compiled to verifiably type-safe bytecode (actually, the correct requirement is "memory-safe"; IL is not particularly typesafe even when it's verifiable - e.g. it lets you declare a union of overlapping int and float, and that will be verifiable).

      Is such a subset possible? I dare say I am an expert on IL, but definitely not on Obj-C, so I couldn't say for sure; but from what I know about it, it's quite possible. All Obj-C constructs seem to be mappable; the problem is with C stuff such as pointers. So, basically, if you can live with just non-pointer and non-array primitive types (structs & unions are ok) and Cocoa classes, this should be mappable. Actually, even pointers are mappable if they're only used for byref parameter passing, with no pointer arithmetic involved, and no fields of pointer types in structs or classes.

      Ultimately, it all hinges on the question of whether there are any Cocoa APIs which do not fit the restrictions outlined above, and which you can't avoid using while developing an iPhone app. Can anyone knowledgeable clarify that part?

      Come to think of it, even if there are some, they can still be wrapped into higher-level Obj-C code, and then your app coded against that higher-level API.

    45. Re:What language for business logic? by shutdown+-p+now · · Score: 1, Insightful

      You believe wrong. Unrestricted ANSI C is not compilable to verifiably memory-safe IL, because unchecked pointer arithmetic, in particular, is not memory-safe.

    46. Re:What language for business logic? by samkass · · Score: 1

      They do, but if you want to use any of the functions for things like, say, UI, you need to use Objective-C at some point because their API is only in Objective-C.

      Depends what you're doing. While UIKIt requires Objective-C, you can essentially go full-screen with a handful of lines of code and write directly to OpenGL from C for the rest. Thus, you could write a game that was 99.9% C/C++ with just a tiny stub to get you into the full-screen OpenGL.

      --
      E pluribus unum
    47. Re:What language for business logic? by tepples · · Score: 1

      Ultimately, it all hinges on the question of whether there are any Cocoa APIs which do not fit the restrictions outlined above

      I don't care about shoehorning Cocoa into CLR; I'm willing to rewrite the front-end entirely using Silverlight. I just want one language in which to develop the back-end without having to pay someone to propagate changes back and forth between back-ends written in different languages with mutually incompatible runtime environments. Until someone does make and publish a viable ObjC-to-IL compiler, cross-platform apps including either iPhone+Windows Phone 7 or iPhone+Xbox 360 will remain a pipe dream.

    48. Re:What language for business logic? by Anonymous Coward · · Score: 0

      At one point, Google said the same about Android.
      At one point, Apple said the same about iPhone.

      We'll see how long Microsoft resists native development on Windows Phone 7.

    49. Re:What language for business logic? by Michael+Kristopeit · · Score: 0

      that is why a translation layer would be needed...

    50. Re:What language for business logic? by JoeMerchant · · Score: 2, Interesting

      I use Qt, write once (in C++), deploy on Windows, Mac, Linux, Symbian, and any number of embedded systems - with native look and feel, and C++ speed.

      I worked for a "visionary" in 2006 who wanted to start an Objective-C shop, he didn't listen to me when I told him that assimilation into Windows was highly probable - it took 6 months before he realized resistance was futile (not to me, but to the industry at large.) Luckily, we stuck with Qt and the port from OS-X to Windows took about one man-week (lots of OpenGL code that wasn't 100% cross-platform).

      Over the last 4 years, Qt has been stable enough that things I wrote to version 4.1 are still compiling (properly) with no modifications in 4.6... that's pretty impressive when compared to other development environments I have worked in.

    51. Re:What language for business logic? by Anonymous Coward · · Score: 0

      Or you know, write a run-time that plays the CLR game.

      Writing a good runtime for OC like you do might be hard, but the Objective C system is simple enough.

      After a few days reverse-engineering the clang output and looking at Apple's manuals I was able to create a run-time for OC2.0, pass messages, set-get properties, throw exceptions. Do multi-thread.

      Sure, I was using C, but there must be some way of doing it in the CLR.

      There are some rough points, but most things are working, and cover my needs. BTW, if somebody would properly document the ABI in some place other than source code I would be very happy.

    52. Re:What language for business logic? by Moridineas · · Score: 2, Insightful

      You're missing the point. The point is not that Objective C is somehow "closer" to Java or not (in reality it's "closer" to Smalltalk), the point is that valid C code is valid Objective C code. That's what "Objective C is a superset of C" means.

    53. Re:What language for business logic? by bar-agent · · Score: 1

      Unfortunately, the answer would probably be XML. Lots and lots of XML.

      That should be an abbreviation.

      "Hey, how are we going to serialize our data model?"
      "Oh, probably easiest to use LALOX."

      --
      i'd hit it so hard, if you pulled me out you'd be the king of britain [bash.org]
    54. Re:What language for business logic? by Jesus_666 · · Score: 1

      There is one popular computing platform that requires all programs to be written in Objective-C. There is another popular computing platform that requires all programs to be written in one of the many languages that compile to verifiably type-safe CLR bytecode, but Objective-C is not one of those languages. So if I want to develop an application for both of these platforms, in what language should I express the business logic of the application so that it can be automatically translated into Objective-C and into a CLR-friendly language?

      C++ or any other C-compatible language. No, OS X does not require you to use Objective-C everywhere, they merely only make their GUI toolkit available through Objective-C bindings. If you can somehow make your program talk through a C API you can have an ObjC/Cocoa frontend talk to it. There's also Objective-C++ (so a C++ API might also work) but I haven't worked with that yet.

      In case the CLR will absolutely refuse to talk to unmanaged libraries you might need to look into the possibility of C# offering data through C APIs, although that means you'll need to keep your business logic Mono-compatible.

      You might also use languages with bindings to both environments like Python. Note, though, that the Python-ObjC bridge appears to have had no activity since november.

      --
      USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
    55. Re:What language for business logic? by TheRaven64 · · Score: 2, Interesting

      Or you know, write a run-time that plays the CLR game.

      Yup, that's possible, but you'd have some impedance mismatch and you'd probably not be able to may Objective-C objects to .NET objects, which would rather defeat the point.

      One of the major benefits that clang has over gcc for Objective-C is a clean abstraction layer between the runtime-specific and runtime-independent parts. This means that you can easily add support for a new runtime by adding a new subclass of CGObjCRuntime (getting GNU runtime codegen done before any Apple people started working on it paid off, and they've continued to maintain the abstraction layer). One thing I keep meaning to do is add a runtime that generates calls that can be easily translated into JavaScript by an LLVM back end, with Objective-C objects represented by JavaScript objects.

      BTW, if somebody would properly document the ABI in some place other than source code I would be very happy.

      The GNUstep runtime's ABI is documented in the headers, with comments that autogsdoc can extract into HTML for you. The old GNU ABI is half-heartedly documented (often incorrectly) in the GNU runtime headers. The Apple ABI is not publicly documented, and neither is the hacky set of interfaces between their Objective-C runtime, their blocks runtime, their Foundation framework, and their linker.

      --
      I am TheRaven on Soylent News
    56. Re:What language for business logic? by tepples · · Score: 1

      OS X

      I was referring to iPhone OS, which shares code with Mac OS X but has a far stricter requirement on user code: all code must pass through Xcode's Objective-C++ compiler.

      In case the CLR will absolutely refuse to talk to unmanaged libraries

      This is in fact the case on both Windows Phone 7 and Xbox 360. All user code must be verifiably type-safe. A variant of C++ compiled with /clr:safe works on purely managed environments, but its constructions are a syntax error in standard C++ and Objective-C++.

      You might also use languages with bindings to both environments like Python.

      I would try IronPython, but iPhone OS doesn't come with a Python interpreter, and the developer agreement forbids embedding one.

    57. Re:What language for business logic? by tepples · · Score: 1

      I use Qt, write once (in C++), deploy on Windows, Mac, Linux, Symbian, and any number of embedded systems

      The only Qt that one can use on iPhone OS is QuickTime. And linking to an unmanaged library such as Qt is forbidden on a purely managed platform such as Windows Phone 7 or Xbox 360.

    58. Re:What language for business logic? by tepples · · Score: 1

      it's at least theoretically possible to develop a cross-platform C or C++ app, assuming the other platforms allow them.

      The other platforms do not in fact allow standard C or C++. Instead, they require an incompatible variant of C++ called "C++/CLI with /clr:safe", and it takes what appears to be convoluted template hackery to resolve the differences between standard C++ and C++/CLI with /clr:safe.

    59. Re:What language for business logic? by mdwh2 · · Score: 1

      It's a shame that Apple can't even follow this basic principle when they write for other platforms - e.g., the abysmal non-standard UIs that Quicktime and Itunes have on Windows.

    60. Re:What language for business logic? by mdwh2 · · Score: 2, Informative

      Note that Qt is now also the standard SDK for Symbian, so you'll also get 50% of the smartphone market anyway.

    61. Re:What language for business logic? by fgb · · Score: 1

      You could express the business logic in C++, which is compatible with Objective-C++ (yes, there is such a language) and C++/CLR.

    62. Re:What language for business logic? by mdwh2 · · Score: 2, Insightful

      Well Qt won't run on the Amiga either. Clearly, no solution is going to work for 100% of platforms, since there'll always be platforms that don't support it (even for things like Java, that are intended to run on "anything", they aren't supported on everything).

      Covering Windows, Mac, Linux, Symbian is the vast majority of computing platforms out there. True, he won't cover that 5% of the phone market (in fact, a lot more of the phone market, since there's more than just Symbian and IphoneOS). Is there a solution that does better than Qt? (The only one I can think of is Java, in that it'll run on billions of Java phones, perhaps 90+% of the phone market; no, the Apple phones aren't capable of supporting Java either, but there you are.)

    63. Re:What language for business logic? by tepples · · Score: 1

      Are we talking Windows desktop apps, or Windows Phone apps?

      I was talking about apps that are ported to both iPhone and Windows Phone 7. I was also talking about games that are ported to iPhone, Windows Phone 7, and Xbox 360. Of course, the view would be different (Cocoa Touch on iPhone, Silverlight on Windows Phone 7, or XNA on Xbox 360 or Windows Phone 7). But I want to share the model across platforms, so that (for example) if the player character can jump across a pit on one platform, he can make the jump on all platforms. The latest iPhone developer agreement requires all apps to be written in one language: Objective-C++ (of which C, C++, and Objective-C are subsets). However, both Windows Phone 7 and Xbox 360 Indie Games require verifiably memory-safe IL, and neither standard C++ nor Objective-C++ can be compiled to verifiably memory-safe IL.

    64. Re:What language for business logic? by Jesus_666 · · Score: 1

      Hmm. There's possibly C# (apparently MonoTouch applications have been approved).

      Of course, this whole problem it two-sided: Apple requires the use of their own toolchain but support C and C++, which are still considered the "standard languages".

      Microsoft requires you to use all .net all the time. They don't care how you arrive at their bytecode but if your language of choice doesn't meet their requirements you can't use it. These requirements just happen to exclude C and anything closely related.

      Both restrictions are... well, bad but I have to say I prefer Apple's - Microsoft's approach seems to me like a reimplementation of the JVM made mandatory and the exclusion of C and C++ makes writing platform-independent code harder than it needs to be.

      --
      USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
    65. Re:What language for business logic? by tepples · · Score: 1

      C++, which is compatible with Objective-C++ (yes, there is such a language) and C++/CLR.

      You suggest the same thing that several other replies already suggest. Try compiling a nontrivial C++ program using C++/CLI in /clr:safe mode and then reread replies to grandparent.

    66. Re:What language for business logic? by tepples · · Score: 1

      There's possibly C# (apparently MonoTouch applications have been approved).

      Apple has changed the iPhone developer agreement to exclude new MonoTouch applications.

    67. Re:What language for business logic? by angel'o'sphere · · Score: 1


      There is one popular computing platform that requires all programs to be written in Objective-C.

      That is wrong.

      There is another popular computing platform that requires all programs to be written in one of the many languages that compile to verifiably type-safe CLR bytecode

      That is also wrong.
      Depending on your preferences you can us C++ on both platforms and Qt, or Java and Swing (Eclipse RCP is not really fun to code for) ...

      If you want to fool around you could run a JVM on top of the CLR runtime ;D google for it ....

      angel'o'sphere

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    68. Re:What language for business logic? by tepples · · Score: 1

      There is one popular computing platform that requires all programs to be written in Objective-C.

      That is wrong.

      It was a pedagogical simplification. The truth is that the iPhone developer agreement has recently been changed to require that all programs be written in Objective-C++, not Java.

      Depending on your preferences you can us C++ on both platforms

      The common subset of C++/CLI with /clr:safe and standard C++ isn't enough to get useful work done unless you use a template hack that expands to handles on C++/CLI and pointers elsewhere.

      If you want to fool around you could run a JVM on top of the CLR runtime ;D google for it

      I tried searching for jvm on top of clr and the first ten results didn't look relevant.

    69. Re:What language for business logic? by DragonWriter · · Score: 2, Insightful

      Objective C is much closer to Java than to C.

      All valid C code is valid Objective C code (well, all C code as of the standard at the time Objective-C was created -- I'm not sure to what extent Objective C has tracked evolution of the C standard.)

      Almost no substantial valid Java code is also valid Objective C code.

    70. Re:What language for business logic? by BarryJacobsen · · Score: 1

      It's a shame that Apple can't even follow this basic principle when they write for other platforms - e.g., the abysmal non-standard UIs that Quicktime and Itunes have on Windows.

      Having a "non-standard" UI is typical on windows; media players especially do not follow the standard UI (see WindowsMediaPlayer, WinAMP, et al.).

    71. Re:What language for business logic? by SanityInAnarchy · · Score: 1

      I second that, but I think it needs more. How about Crudely Overused XML?

      --
      Don't thank God, thank a doctor!
    72. Re:What language for business logic? by shutdown+-p+now · · Score: 1

      I tried searching for jvm on top of clr and the first ten results didn't look relevant.

      http://www.ikvm.net/

    73. Re:What language for business logic? by shutdown+-p+now · · Score: 1

      As I understand it, neither the Objective-C-only platform nor the .NET-only platform can run PHP.

      Phalanger is an implementation of PHP for .NET.

    74. Re:What language for business logic? by shutdown+-p+now · · Score: 1

      A translation layer is explicitly prohibited by Apple SDK license agreement. You have to originally write your applications in C/C++/Obj-C.

    75. Re:What language for business logic? by shutdown+-p+now · · Score: 1

      A saner answer (but one I like less) is to develop something which compiles Objective-C to CLR.

      You can't compile all Obj-C constructs into memory-safe (i.e. verifiable) IL. Plain C pointers and arrays are right out, for example.

      maybe at a lower level (translate Objective-C bytecode to CLR)

      There's no such thing as an Obj-C bytecode, at least not in any implementations I'm aware of. GCC compiles it directly to native code. Well, there is GCC's internal representation, but it's not exactly bytecode - and from what I've heard, working with it is very painful.

      Anyway, Obj-C grammar is trivial enough that parsing it wouldn't be a problem.

    76. Re:What language for business logic? by shutdown+-p+now · · Score: 1

      It will take longer.

      With Apple it was clear right away that HTML/JS is not viable for a lot of applications, for fairly obvious reasons.

      With Google, their problem was that Dalvik is (well, was, considering changes in 2.2) an interpreter, not JIT, so performance is similarly dismal.

      But WP7 has .NET CE, and that thing has JIT, so perf-wise, it's going to hold for longer.

    77. Re:What language for business logic? by aztracker1 · · Score: 1

      But monotouch compiles C# via obj-c to native iphone...

      --
      Michael J. Ryan - tracker1.info
    78. Re:What language for business logic? by Baki · · Score: 1

      Yesterday, at a java conference (jazoon in zurich) one of the speakers gave a demo on how to create a domain specific language for an iphone app, implement a parser for this domain specific language (using xtext in eclipse) and a template to generate obj-c code using xpand. Then he generated java targeted for android resulting in both obj-c and java generated from the same domain specific language. I was quite impressed.

      Current model driven design tools make it easy to implement your own domain specific language to express your business logic and generate to target different platforms.

    79. Re:What language for business logic? by fusiongyro · · Score: 1

      Good point.

    80. Re:What language for business logic? by fusiongyro · · Score: 1

      I think the unfortunate truth is that cross-platform as a concept doesn't really exist today. With clever tricks, you can manage to get "the same" app to run on several OSes but truly different platforms and those codebases are going to have to be forked. And this sucks.

    81. Re:What language for business logic? by tepples · · Score: 1

      Current model driven design tools make it easy to implement your own domain specific language

      Then I must have gone to the wrong school because the computer science curriculum at Rose-Hulman Institute of Technology didn't require compiler construction. The only class we got about language tools was the one where you write a Scheme interpreter in Scheme.

    82. Re:What language for business logic? by Michael+Kristopeit · · Score: 1

      well... thats the kind of thing that is impossible to enforce. you could always make an interactive translator that output directly to the keyboard buffer, so whatever apple was trying to do to force people to use their development environment, it would still seem like the user was typing in the code.

    83. Re:What language for business logic? by Keynan · · Score: 1
  5. wha...? by Mark19960 · · Score: 3, Insightful

    They use search engines to determine this?
    Why does this seem odd to me... or even misguided?

  6. They need... by Anonymous Coward · · Score: 0

    do to way instain mother who kill thier chrilden.

    1. Re:They need... by Anonymous Coward · · Score: 0

      I accidentally babby is this dangerous?

    2. Re:They need... by Anonymous Coward · · Score: 0

      I accidentally babby is this dangerous?

      and you managed to post the only reply that didnt have anything to do with how babby is formed.

      I saw it on the news this mroning.

    3. Re:They need... by Anonymous Coward · · Score: 0

      In soviet russia babby you!

  7. Re:Tiobe also explains how it determines it rankin by IamTheRealMike · · Score: 5, Insightful
    Indeed they do:

    The ratings are calculated by counting hits of the most popular search engines. The search query that is used is

    +"[language] programming"

    From this I conclude that the results are meaningless. At best it shows that Objective-C programming has resulted in more discussions and questions. Whether it is "popular" or not is a bit more subjective.

  8. Objective-C jumped up on the basis by ClosedSource · · Score: 4, Funny

    of all the posts on Slashdot saying how much it sucks.

    1. Re:Objective-C jumped up on the basis by blair1q · · Score: 1

      So next quarter's report will be slashdotted. Big whoop.

  9. Has been quite a while! by Anonymous Coward · · Score: 0

    Slashdotted!! And it's not even a blog or anything...

    1. Re:Has been quite a while! by localman57 · · Score: 2, Informative

      Not a blog? Doing a couple of dozen google searches and typing the numbers into Excel doesn't exactly strike me as hard-core Journalism...

  10. Most popular language isn't C by AdmiralXyz · · Score: 4, Funny

    If Tiobe's website is to be believed, the #1 programming language right now is Whitespace.

    --
    Dislike the Electoral College? Lobby your state to join the National Popular Vote Interstate Compact.
    1. Re:Most popular language isn't C by noidentity · · Score: 1

      If Tiobe's website is to be believed, the #1 programming language right now is Whitespace.

      You're correct, though the #0 language is C.

    2. Re:Most popular language isn't C by blair1q · · Score: 2, Funny

      And the most popular drink is spit, and the most popular song is "why won't this compiiiii-iiiile?" and the most popular slashdot reply is "Page Down".

    3. Re:Most popular language isn't C by syousef · · Score: 1

      If Tiobe's website is to be believed, the #1 programming language right now is Whitespace.

      I would have thought it would be http://en.wikipedia.org/wiki/Brainfuck

      --
      These posts express my own personal views, not those of my employer
  11. Re:Tiobe also explains how it determines it rankin by chargersfan420 · · Score: 5, Funny

    Agreed. My first thought was, "Yay, I'm not the only idiot out there programming with VB!", but after reading that, it's more like, "Yay, I'm not the only idiot out there having problems coding with VB!"

  12. It doesn't exhibit natural popularity. by Anonymous Coward · · Score: 4, Insightful

    All kidding aside, Objective-C isn't the sort of language people use because they want to. Rather, they use it because it's what Apple says they can use.

    Back in the NeXT days, we used it because it was far better than anything else out there. But that was 20 years ago. Times have changed, and we have better programming languages available to us. Even with Objective-C 2.0, it's still somewhat of a relic.

    So it's popularity isn't natural. It's almost fully artificial, based upon the restricted nature of Apple's platforms, especially the mobile platforms where they've literally "outlawed" everything else.

    1. Re:It doesn't exhibit natural popularity. by dzfoo · · Score: 1

      I find Objective-C a superior language than other crap I have to deal with at work. C# is a wonderful language, in my opinion, but its ties to the .NET framework limits its platform scope and, to me at least, its appeal.

            -dZ.

      --
      Carol vs. Ghost
      ...Can you save Christmas?
    2. Re:It doesn't exhibit natural popularity. by ceeam · · Score: 3, Insightful

      > Times have changed, and we have better programming languages available to us.

      That's interesting. And if I'd ask you to name another compiled language with dynamic message routing/dispatch it would be what? C libs compatibility is desired.

    3. Re:It doesn't exhibit natural popularity. by Mark19960 · · Score: 1

      I know I will get modded troll, but I think with all the bad Apple press and the general shift towards anti-Apple
      that the fanboys are really reaching for anything.. and I mean anything to make it all go away or to paint a better picture.
      It won't be painted in Obj-C... Sorry.

    4. Re:It doesn't exhibit natural popularity. by dubbreak · · Score: 1

      C# is a wonderful language, in my opinion, but its ties to the .NET framework limits its platform scope and, to me at least, its appeal.

      You have heard of mono right?

      --
      "If you are going through hell, keep going." - Winston Churchill
    5. Re:It doesn't exhibit natural popularity. by dzfoo · · Score: 1

      Yes, and it tries to replicate the CLI and the .NET framework, both of which I think suck.

              -dZ.

      --
      Carol vs. Ghost
      ...Can you save Christmas?
    6. Re:It doesn't exhibit natural popularity. by gbjbaanb · · Score: 1

      And if I'd ask you to name another compiled language with dynamic message routing/dispatch

      Erlang.

    7. Re:It doesn't exhibit natural popularity. by Anonymous Coward · · Score: 0

      C++, C#, VB.NET, Java. Even Haskell and and some Common Lisp implementations manage all of that.

      I know you'll say, "But C#, VB.NET and Java aren't compiled!" WRONG. You can use .NET's ngen.exe utility to compile .NET apps to native executables. And I've worked with Java apps of over 3 million lines of code that compiled to native binaries just fine using GCC's GCJ compiler.

    8. Re:It doesn't exhibit natural popularity. by DarkDust · · Score: 2, Interesting

      All kidding aside, Objective-C isn't the sort of language people use because they want to. Rather, they use it because it's what Apple says they can use.

      Back in the NeXT days, we used it because it was far better than anything else out there. But that was 20 years ago. Times have changed, and we have better programming languages available to us. Even with Objective-C 2.0, it's still somewhat of a relic.

      Well, over the past 20 years I've played around with a lot of languages and a lot of environments and I do enjoy writing in Objective-C. It makes a few neat things that I like easy, like Duck Typing and delegates. But more than the language I enjoy Apple's APIs. They are very consistent and nicely done. I know it wasn't always like this, and there are still a few dark corners if you really dig into non-common areas, but all in all it really is fun to use. More fun than most C++ APIs, IMHO, and to me also more fun than .NET or Java. I like C# as a language, but I can't stand the .NET API. Likewise, Java as a language is OK (neither great nor bad) but the API is so-so. It's good, but I never really enjoyed using it. But I can say that I do enjoy Cocoa.

      One thing in particular that I like is that due to a few Objective-C language features you can often avoid creating yet another subclass of something, thanks to Duck Typing.

      Now they even added support for C blocks allowing easy anonymous callback functions, which enables a few more neat programming patterns. My favorite scripting language is Ruby and Objective-C is the compiled language that comes closest to it allowing me to make use of design patterns that I learned to love via Ruby.

    9. Re:It doesn't exhibit natural popularity. by Anonymous Coward · · Score: 0

      How exactly does C#'s ties to a framework, which you don't actually have to use if you're really that desperate to avoid it, make it less appealing than Objective-C with its own ties to a framework?

    10. Re:It doesn't exhibit natural popularity. by TheRaven64 · · Score: 1

      Erlang isn't compiled. By default, it is bytecode interpreted or AST interpreted for debugging. With HiPE some bits of it are JIT compiled, but a lot aren't.

      --
      I am TheRaven on Soylent News
    11. Re:It doesn't exhibit natural popularity. by TheRaven64 · · Score: 4, Informative

      But more than the language I enjoy Apple's APIs. They are very consistent and nicely done. I know it wasn't always like this

      You might be surprised. Take a look at the OpenStep specification and see how much is familiar. Apple has filed off a few rough edges, but a lot of Cocoa has not changed in almost two decades.

      --
      I am TheRaven on Soylent News
    12. Re:It doesn't exhibit natural popularity. by SpryGuy · · Score: 1

      C# 4.0 allows dynamic types (including adding methods on the fly)... so you pretty much get "Duck Typing" abilities.

      And I'm curious what it is you hate most about the .Net framework? I admit I don't do a lot of Web(ASP.NET) or UI code... mostly back-end/server stuff, but I like it fine. I'm much happier working in C#/.Net than I was working in Java for whatever reason.

      And Visual Studio + ReSharper is a really kick-ass development environment, imho.

      --

      - Spryguy
      There are three kinds of people in this world: those that can count and those that can't
    13. Re:It doesn't exhibit natural popularity. by dubbreak · · Score: 1

      Well it removes the platform scope issue, which was your original complaint (not .net and the CLI "sucking").

      Having worked with both Java and .Net I actually prefer .net. Plus I'd have a hard time living without linq and some of the other fun items that make me more productive.

      --
      "If you are going through hell, keep going." - Winston Churchill
    14. Re:It doesn't exhibit natural popularity. by DragonWriter · · Score: 1

      And if I'd ask you to name another compiled language with dynamic message routing/dispatch it would be what? C libs compatibility is desired.

      If you by "compiled" you mean merely "has a implementation that relies on compilation", than there are lots of options -- Ruby in the form of JRuby, Ruby 1.9.x, or Rubinius; Erlang, and a bunch of others (AFAIK, Ruby -- including JRuby -- can use C libs fairly readily; Erlang makes that more difficult, though ISTR seeing that there is some improvement on that front in the most recent releases.)

      If you mean "has an implementation that is compiled to native machine code rather than VM bytecode", then the number is smaller, but Smalltalk -- which is where Objective-C got the features it added to C -- certainly counts, as there are Smalltalk systems that support compilation to machine code and link C-derived libs.

    15. Re:It doesn't exhibit natural popularity. by MacDork · · Score: 1

      > Times have changed, and we have better programming languages available to us.

      That's interesting. And if I'd ask you to name another compiled language with dynamic message routing/dispatch it would be what? C libs compatibility is desired.

      Java. com.webobjects.foundation.NSSelector :-)

    16. Re:It doesn't exhibit natural popularity. by iron-kurton · · Score: 1

      And if I'd ask you to name another compiled language with dynamic message routing/dispatch it would be what?

      Why do you think a compiled language with dynamic message routing/dispatch is superior to others? Personally, I think message routing and dispatching sucks (as implemented in Objective-C/XCode) because of a) null pointers and b) calling non-existent methods is perfectly valid. I can't tell you how many times XCode didn't throw even a warning (let alone a compile-time error) because I tried to call a method that didn't exist, or whose signature I messed up by, say, one parameter. Sometimes, I've had to clean all targets just to see if there are any warnings which the compiler didn't report previously -- and if you're using OpenFeint (for example), rebuilding the entire project is very, VERY slow. By the way, passing parameters as key:value pairs just so that you can pass parameters out of order creates one hell of a readability mess for no real gain.

      How about passing messages to null pointers? Why should that even be legal? Java will complain about it at compile time, why can't XCode handle that at compile time too instead of letting my program blow up with _TERMINATED UNCAUGHT EXCEPTION_? (Yes, I'm a Java developer by day, iPhone by night)

      But more to the point, why does it matter if a language is compiled, has a dynamic message routing/dispatch blah blah blah...? If the language does the job well and is easy to use, who really cares if it's object oriented, message/dispatch, procedural, functional, etc? Personally, I don't think that Obj-C is the best tool for the job as I feel like I just can't code as quickly in Obj-C as I can in Java (or PHP). Partly it's syntax problems (all those square brackets are kind of a pain), partly the nature of the language as described above, which makes reading and testing code much more difficult, IMHO.

      --
      Change is inevitable, except from a vending machine -- Robert C. Gallagher
    17. Re:It doesn't exhibit natural popularity. by shutdown+-p+now · · Score: 1

      compiled language with dynamic message routing/dispatch

      I think the above is precisely what GP had in mind when he spoke of "better programming languages". It's not a particularly nice combo.

    18. Re:It doesn't exhibit natural popularity. by T.E.D. · · Score: 1

      Ada

    19. Re:It doesn't exhibit natural popularity. by bar-agent · · Score: 1

      By the way, passing parameters as key:value pairs just so that you can pass parameters out of order creates one hell of a readability mess for no real gain.

      What are you referring to here? If you mean something like [UIColor colorWithRed: blue: green: alpha:], those parameters cannot be passed in any order other than the one given. For example, [UIColor colorWithBlue: green: red: alpha:] is not going to do anything except get you an error.

      --
      i'd hit it so hard, if you pulled me out you'd be the king of britain [bash.org]
    20. Re:It doesn't exhibit natural popularity. by dzfoo · · Score: 1

      I prefer .NET to Java, but I prefer Objective-C to both.

              -dZ.

      --
      Carol vs. Ghost
      ...Can you save Christmas?
    21. Re:It doesn't exhibit natural popularity. by gbjbaanb · · Score: 1

      I'm prepared to be put right here, as I didn't know if it was compiled or not, but a quick google brought up a reference manual for the erlang compiler. That's my defence and I'm sticking to it... now off to edit wikipedia's entry :)

    22. Re:It doesn't exhibit natural popularity. by TheRaven64 · · Score: 1
      The erlang compiler (erlc) produces .beam files, which contain bitcode for the BEAM interpreter. This is quite a fast bytecode interpreter, but it's a lot slower than compiled C. The HiPE project added a JIT compiler, but it has some limitations. It does some quite clever things, but it has to fight Erlang's dynamic type system in a few places. Floating point operations are a big problem for it and it has to do some clever type inference. When this isn't possible, floating point performance sucks (not as badly as it currently sucks in my compiler, but it's pretty poor).

      The really nice thing about Erlang is the scalability, not the speed. It may onIy may only be 20% of the speed of native-compiled C code, but if it scales to 100 times as many processors as C code then that's not such a problem. You're much more likely to be able to just throw hardware at the problem if your Erlang program is too slow than you are with most other languages.

      --
      I am TheRaven on Soylent News
    23. Re:It doesn't exhibit natural popularity. by k8to · · Score: 1

      Be a bit more careful in your definition. Languages like python and perl meet your stated requirements, as well as java and so on.

      "Statically compiled to machine code with dynamic dispatch" might get you to a pretty small set.

      Then, to answer your question I'm not sure if OCaml technically qualifies, but it solves the same problems just fine.

      --
      -josh
    24. Re:It doesn't exhibit natural popularity. by Yogs · · Score: 1

      The ability to load and run stuff in C libraries is present in most major languages because it's too useful not to include. A lot of minor languages compile through C and make things potentially even easier (at least at run time).

      There's plenty of highly dynamic languages in both of those lists that directly or indirectly could do what you're asking for here.

    25. Re:It doesn't exhibit natural popularity. by mmkkbb · · Score: 1

      GP may be talking about Mac OS Classic/Mac Toolbox type stuff. Passing in Pascal strings from C, etc. Weird memory architecture holdovers from the days of 24-bit addressing and non-relocatable memory.

      --
      -mkb
  13. Re:Tiobe also explains how it determines it rankin by arth1 · · Score: 1

    So they don't count perl hacking, erlang development and assembly coding, then.

  14. How about a different conclusion..... by m509272 · · Score: 1

    This is funny. If it were me analyzing their results, it could also mean that developers are so frustrated with Objective-C that they have to use search engines to find help for the simplest of things instead of simply being able to code using provided documentation or books.

    1. Re:How about a different conclusion..... by Jesus_666 · · Score: 1

      Or that unlike a lot of other languages Objective-C has a strong community which allows you to quickly and reliably find solutions to your specific problem without having to dig through books.

      Armchair science is fun!

      --
      USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
  15. Re:Tiobe also explains how it determines it rankin by Anonymous Coward · · Score: 1, Funny

    What can I say about Objective-C programming, I like, Objective-C programming, but Objective-C programming, is not quite as fun as non-Objective-C programming.

    Actually, I have never performed Objective-C programming, but I think, Objective-C programming is quite useful for application domains specific to Objective-C programming.

    Have you ever tried Objective-C programming, Apple likes to talk about Objective-C programming, but I'm not sure that Objective-C programming is right for me...?

    Objective-C programming may well be right for everyone,

    God Bless Objective-C programming

  16. Re:Tiobe also explains how it determines it rankin by Demonantis · · Score: 2, Insightful

    I think popular topic would mean popular language at least to some degree. Or for sure that it is a more used language as search results wouldn't discriminate preferences like actually enjoying the language. Neat to see and know, but wouldn't use it for any significant business related decisions is how I see it.

  17. JavaScript by belloc1 · · Score: 1

    Ok (if you count it) what language is more popular than JavaScript?? How the hell is that not #1??? JavaScript is everywhere and I'm sure 90% of the people here on Slashdot use it. That is bizarre. Something is wrong with their stats.

    1. Re:JavaScript by BasilBrush · · Score: 2, Interesting

      People always overestimate the number of other people that are like them in some way. You are interested in Javascript, so you overestimate how many other people it is important for.

      I've programmed for 30 years; a few languages I've used a lot; many languages I've dabbled with. I've never once touched Javascript. I'm likely to underestimate how many people are program in Javascript.

    2. Re:JavaScript by ShadowRangerRIT · · Score: 1

      Agreed. I've learned enough JavaScript to do a few things with Greasemonkey (mostly stuff like going straight from an article link on a news site to the print-friendly version without having to go through the non-print-friendly version first), but I've never used JavaScript in a job. My jobs have been mostly C (with a smattering of C++, but mostly C), plus a few years of Java and C#. Perl and Bash are used as the glue when needed. JavaScript just doesn't enter into it.

      I'm sure there are a lot of web developers that use it all the time, but contrary to popular belief, web apps have not replaced locally installed applications yet, nor are they likely to for many purposes (e.g. high speed number crunching).

      --
      $_ = "wftedskaebjgdpjgidbsmnjgcdwatb"; tr/a-z/oh, turtleneck Phrase Jar!/; print
    3. Re:JavaScript by aztracker1 · · Score: 1

      does "application/javascript" or "javascript" in a web page get indexed? I also think in sheer numbers of devs using it JS is probably #1

      --
      Michael J. Ryan - tracker1.info
    4. Re:JavaScript by aztracker1 · · Score: 1

      But, small and custom LOB apps are #1 in development work (though none of these has a truly high # of end users, I'm working on an internal app for an organization that is used by all of the 300k employees), and the #1 platform for LOB apps is Web.

      Most app dev, is web app dev.. in terms of # of developers, not number of users.

      --
      Michael J. Ryan - tracker1.info
    5. Re:JavaScript by Draek · · Score: 1

      By what measure? if by "popularity of an app written in it" then C is king by virtue of most OSes being written in it, pretty much all drivers and so on. If by "number of developers writing code in it" then Javascript would almost surely rank below Java and C++, there's a lot of Javascript on the 'net but I'd say most of it is simply copy&paste'd from somewhere else or automagically written by a framework the admin installed. And if by "popularity of its interpreter" then Javascript would be first only if you disregard the bare metal as being an "interpreter" of sorts for compiled C/C++/Pascal/etc, an unfair comparison by most standards.

      --
      No problem is insoluble in all conceivable circumstances.
  18. Lines of code by AffidavitDonda · · Score: 1

    I think any useful statistics on a programming language would have to include something on the amount of code written in it and project complexity. It's nice to have lots of small applets, but a single wordprocessor would count for a lot of them Google search results only tells me, that a lot of kids try to write their first "hello world"

    1. Re:Lines of code by bdenton42 · · Score: 1

      Lines of code would be really difficult to measure, complexity even more so, not to mention a lot of companies wouldn't provide that information. In any case I'm pretty sure COBOL would still be #1 on that list and promoting that language is the last thing we need to be doing. It's better to just pretend that Tiobe's numbers are meaningful.

    2. Re:Lines of code by Lars+T. · · Score: 2, Insightful

      I think any useful statistics on a programming language would have to include something on the amount of code written in it and project complexity.

      I have a feeling that the popularity of a programming language is actually inversely proportional to the LOC needed for a given task - unless you get paid for LOC.

      --

      Lars T.

      To the guy who modded me down from perfect to terrible Karma - Apple haters still suck

  19. Re:Tiobe also explains how it determines it rankin by blair1q · · Score: 2, Funny

    But they do count prime-time programming, which is always more popular than the other kinds.

  20. The return of C? by jamshid · · Score: 1

    Although we went through a period thinking we have an abundance of CPU power, efficiency is back in vogue as it's needed everywhere from the mobile, because of limited cpu/battery, to servers trying to solve the the C10K problem (serving >10K simultaneous connections).

    Couple of interesting projects are the Redis server, written in tight ANSI C, and the Go language, kinda like a combination of C++ and python with a nod towards erlang.

    http://code.google.com/p/redis/
    Redis is an advanced key-value store. It is similar to memcached but the dataset is not volatile, and values can be strings, exactly like in memcached, but also lists, sets, and ordered sets. All this data types can be manipulated with atomic operations to push/pop elements, add/remove elements, perform server side union, intersection, difference between sets, and so forth. Redis supports different kind of sorting abilities.

    http://golang.org/doc/go_faq.html#What_is_the_purpose_of_the_project

  21. Pseudocode is more popular by mschaffer · · Score: 1

    If only they had a pseudocode compiler!

  22. Dinosour language by Nightlight3 · · Score: 5, Informative

    After about two years programming Obj-C/Cocoa for iPhone apps, I can't believe that this ancient experiment in OOP by an amateur compiler writer is still around. Even though it is nominally a compiled language, all the calls to methods as well as accesses to class properties are interpreted -- the name of the method & its args (args have names) is looked up in a hash table by runtime interpreter to find the address, then to push args and call it, every time you invoke it or access a property. The Obj-C creator basically didn't know how to code linker-loader address binding and so he just left that part for the runtime to decode on millions of end users CPUs from there on. He also didn't know about name mangling, and left that part of his job for the future programmers to do manually (method names and args are explicitly named, so you end up with arg named calling methods like [obj method:arg1 count:count]). For adding properties to a class you have enter the same info in triplicate (variable delcaratiom, property declaratiom, getter/setter declaration), so there is lots of cut & paste, doing by hand the job that compiler should have been doing. The syntax is very clunky, inelegant, uneconomical on programmer's time e.g. requiring lot's of jumping back and forth to match/complete nested square brackets, again simplifying compiler writer's job at the expense of busy work for countless programmers from there on.

    In addition to performance & narrow technical issues, the worst fundamental flaw of Obj-C is that the creator didn't understand the value of name space partitioning in OOP (the key tool for building layers of abstraction), so much of that's left largely to programmers, which in Cocoa (API, like win32) resulted in mind-numbing hyper-verbosity, with each class and method names dragging huge repetitive prefixes, with each name spelling out explicitly its whole ancestry back to the stone age. While the Xcode editor is doing heoric efforts in trying to guess what you meant and offer auto-completion of the names as you type, that is the lesser half of the problem (you still end up doing lots of cut & paste of the Cocoa names). The main drawback is when trying to read or modify the code later -- even the simplest algorithm looks complex, any pattern specific to the task at hand is drowned in the mind-numbing sea of repetitive Cocoa verbiage.

    In short, horrible language & API framework. Only someone who grew up with this and never knew anything better could love it. Of course, like everything Apple, buried under the idiotic Coca+Obj-C layer, there are gems of genius, especially the extremely well thought out functionality and high performance graphics & animation engines.

    1. Re:Dinosour language by binary+paladin · · Score: 4, Informative

      I have tried multiple times to get into Objective-C and Cocoa. I just can't do it and Objective-C is why. It's a shitty language with an even shittier syntax.

      You would think Objective-C 2.0 would have made a greater leap in terms of usability (like adding namespaces), but it didn't. We got garbage collection... which isn't even used in iPhone programming!

      As much as I tend to detest Microsoft, I would love to see C#, or a language like it, become more widespread. As far as syntax goes, it's my favorite take on OOP + C.

    2. Re:Dinosour language by mini+me · · Score: 4, Informative

      all the calls to methods as well as accesses to class properties are interpreted

      That is the feature, along with dynamic typing, that makes Objective-C a perfect match for interface programming. Being able to load classes and call methods from string identifiers reduces the amount of code needed considerably when compared to languages that use early binding. Have fun re-implementing something like KVC/KVO in C++.

      Objective-C's problems stem from the fact that it must be able to compile all valid C code. This severely limits the syntax available. Ruby is essentially Objective-C without the C syntax, if you are curious about the difference syntax makes.

    3. Re:Dinosour language by Dog-Cow · · Score: 0, Troll

      Wow. I think you use a different Objective C then I do.

    4. Re:Dinosour language by Anonymous Coward · · Score: 0

      I just wish you could write in Python/Cocoa for the iPhone... this combo works great in OS X.

    5. Re:Dinosour language by Anonymous Coward · · Score: 0

      I would love to see C#, or a language like it, become more widespread. As far as syntax goes, it's my favorite take on OOP + C.

      I liked it better when it was called Java.

    6. Re:Dinosour language by Anonymous Coward · · Score: 0

      Man, C# is horrible. It's like someone took the good parts from Java, C++, and whatever, and, not understanding why they were good, threw them all together, along with some extra stuff just to make things convoluted, and out came C#. C#, however, should be a boon to those people willing to clean up other people's messes.

    7. Re:Dinosour language by Sycraft-fu · · Score: 4, Insightful

      I've never understood why Apple has such an obsession with Objective C. To me it really does seem like being different for the sake of being different. In the event they really felt like a new language was needed, well, they should have made one (as MS did in the case of C#). Otherwise it makes sense to use C and C++. They produce fast code, they are well supported, lots of programmers know them, etc. To me it seems highly sensible to use C for extremely low level things (like OS kernels), C++ for speed critical/native apps (like much of the rest of an OS) and then a managed language for those things where speed is not important.

    8. Re:Dinosour language by Anonymous Coward · · Score: 0

      check out macruby....this is moving rapidly.

    9. Re:Dinosour language by Anonymous Coward · · Score: 0

      Objective-C was invented for the NeXT Operating System. This was back in the day before C++ was standardized. I guess Jobs or whomever thought they could do better. NeXT OS was the basis for OS X therefore it got all the Objective-C crap.

      Objective-C is like a craptacular blend of C and a slow scripting language.

    10. Re:Dinosour language by maccodemonkey · · Score: 1

      "Even though it is nominally a compiled language, all the calls to methods as well as accesses to class properties are interpreted -- the name of the method & its args (args have names) is looked up in a hash table by runtime interpreter to find the address, then to push args and call it, every time you invoke it or access a property."

      Learn KVO and bindings. Then you'll understand why this is done.

      Not understanding the purpose of a language feature is no excuse to bash it.

    11. Re:Dinosour language by Homburg · · Score: 4, Informative

      Apple did make a new language, intended (thought not actually used) for the Newton. The Dylan language is basically Lisp with a more conventional, Algol-like syntax; it's a pretty gorgeous language, and I wish it had been successful.

    12. Re:Dinosour language by GlassHeart · · Score: 0

      I have tried multiple times to get into Objective-C and Cocoa. I just can't do it and Objective-C is why. It's a shitty language with an even shittier syntax.

      That just means you didn't try very hard, or worse, are just not a good programmer. Look, there are some 200,000 apps in Apple's store, most or all of which have at least some Objective C. I'm going to guess that this means tens of thousands of developers have been able to write and ship an app in Objective C.

      This fact is itself not a defense of Objective C, by the way, as these tens of thousands may all hate it for all I know. The point, however, is that if you "just can't do it" while tens of thousands somehow manage, don't blame the tool just yet.

    13. Re:Dinosour language by Nightlight3 · · Score: 2, Interesting

      Have fun re-implementing something like KVC/KVO in C++.

      Now that you mention it, KVC/KVO is another one of ridiculous and wasteful (on end user's CPU & programmer's time) "features" of the Cocoa API. Passing simple numeric arguments of time critical functions (such as animation control) as ascii string objects (not just ascii strings, but malloced strings, which need to be parsed & converted into binary integer/float then free-ed) is utter idiocy. If you wish to get file properties, they return you malloced ascii dictionary of ascii name-value pairs, for size, time date,... (all in ascii pairs that need to be parsed back to binary values that your code needs). It's beyond stupid. Similarly, passing 4 byte IP addresses to their CFNetwork APIs (their wrapper around BSD sockets) as malloced objects is just a mind boggling wastefulness. And all that wastefulness on a mobile device, burning away the batteries.

      As with everything Apple, where sparks of genius are smothered by cult-like rigidity and idiocy, they are going to squander again the gigantic edge they had with the iPhone (which is a great device), just as they did it with Apple II after IBM PC took over, then later after pioneering PC GUI with Mac, they lost the market to Windows which was ten years behind, despite the latter being fueled by the famous Microsoft's creativity and excellence. They are now repeating their old pattern with iPhone (and, among others, their religious devotion to the clunky, wasteful Obj-C/Cocoa). In couple years Android and Mobile Windows, or maybe something better, will leave Apple with their usual 5% niche of the market.

    14. Re:Dinosour language by yerM)M · · Score: 3, Interesting

      all the calls to methods as well as accesses to class properties are interpreted

      .

      It's also not quite true. Objective-c message passing is quite fast, only 4x the cost of a virtual table call in C++. If you are really interested in what happens behind the scene, see obj-c fast-path

      Now, namespaces are still a honking good idea.

    15. Re:Dinosour language by Anonymous Coward · · Score: 0

      Thank you! At least one comment coming from someone who actually uses this language and tries to get some work done with it.
      And your point on verbosity is definitely right, although i prefer properly/verbose named functions/properties to cryptic names like "foo".
      Why i have to tell the compiler 3 times (actually 4 when you include the missing GC on iPhone-OS) about my properties still puzzles me. Could one of the C-gurus here maybe come up with some C-macro-magic to handle that?
      And i must say i also like categories and delegates, which allow surprisingly well organized code.

    16. Re:Dinosour language by SpryGuy · · Score: 1

      1) It's certainly not a defense... there are millions of VB apps, and everyone know VB (especially VB6 and earlier) is crap.

      2) He said "I just can't do it"... meaning he couldn't bring himself to do it. Not that something technically couldn't be done.

      There are a lot of things I could conceivably do that i just can't bring myself to do.

      --

      - Spryguy
      There are three kinds of people in this world: those that can count and those that can't
    17. Re:Dinosour language by Nightlight3 · · Score: 2, Interesting

      There is nothing there that a table of functions pointers along with compiler generated indices for methods/properties, linker/loader address bindings and on rare occasions OS APIs that provide access to these function pointer tables (Windows has such capabilities), cannot accomplish 300-500 times faster (yep, I had single stepped through their method calls & getters/setters, KVO/KVC processing,... and watched tasks that any decent compiler turns into one or two instructions explode into many hundreds of instructions through their runtime interpreter every time you invoke the "feature").

      I have debated Apple guys on SDK forum (until some big guy, evangelist, got annoyed with the heresy and put a stop to the discussion), asking them to show what exactly can't be done hundreds of times faster (with properly integrated compiler/linker/loader) than their runtime hash tables are doing, and I couldn't get one example that could stand after closer analysis of the tasks. Basically, the guy who created Obj-C was toying with OOP concepts (even he doesn't use it any more), he didn't get the key point of OOP (tools for building layers of abstraction, via flexible name spaces and overloading), and somehow he impressed Steve Jobs, who knew even less about compilers and programming, in his Next phase, and everyone is now stuck with half baked language and hyper-verbose wasteful Cocoa, which leave good chunk of the compiler/linker/loader job to the programmers and end users' CPUs.

    18. Re:Dinosour language by Anonymous Coward · · Score: 0

      Having programmed in both, I can say this: C# is WAY better than java.

      Besides, java is slowly dying. C# is growing, and for good reason.

    19. Re:Dinosour language by binary+paladin · · Score: 0, Flamebait

      Woah. Hold up right there.

      There's a third option: I don't enjoy it, dickhead. I hate the language and since I have no pressing need to learn it or use it (other than a mild interest in Mac programming) I haven't bothered.

      It's not that I don't understand it. It's that I can bring myself to work with a language that frustrates me so much.

      Fucking slashdot pricks.

    20. Re:Dinosour language by wsgeek · · Score: 5, Informative

      I understand why you might think this way, but realize that the language was created by a pretty smart guy -- Dr. Brad Cox -- and he had one main goal in mind: Be a strict superset of C (not even C++ does this: http://en.wikipedia.org/wiki/Compatibility_of_C_and_C%2B%2B#Constructs_valid_in_C_but_not_C.2B.2B)

      He also wanted it to be truly object-oriented and dynamic in every sense. Your comment therefore has some innaccuracies / unfairness to it:
      "The Obj-C creator basically didn't know how to code linker-loader address binding"

      This is by design. It allows dynamic messaging. You can even, for example, send a message to nil and everything is fine.

      "He also didn't know about name mangling"

      Again, only something you need in a statically linked object-inheritance style language like C++.

      "method names and args are explicitly named, so you end up with arg named calling methods like [obj method:arg1 count:count]"

      Again, by design. Named arguments makes Objective-C one of the best languages for code readability. You don't have to wonder what the arguments are!

      "For adding properties to a class you have enter the same info in triplicate"

      Good point -- this is frustrating even in ObjC-2.0. They should get rid of @synthesize and do it automatically.

      "the creator didn't understand the value of name space partitioning in OOP"

      Dr Cox certainly understood. He just wanted to keep things as close to "pure" C as possible, and had a different way of partitioning spaces -- use 2 letter codes. This is primitive but surprisingly effective, and why all Cocoa objects begin with NS. Think of all the typing this saves, and you never have to wonder what namespace context you're in.

      "mind-numbing hyper-verbosity"

      I agree that the Cocoa library objects / methods are verbose, but this is a GOOD thing. Also, other more recent languages do the same with there libraries, for example: http://msdn.microsoft.com/en-us/library/system(v=VS.100).aspx

      "While the Xcode editor is doing heoric efforts in trying to guess what you meant "

      I agree 100% with you -- Code completion in XCode needs to improve

      "you still end up doing lots of cut & paste of the Cocoa names"

      100% agreed -- XCode needs to have something better than their macro insertion stuff to save me a lot of typing.

    21. Re:Dinosour language by Bing+Tsher+E · · Score: 0

      Great. So 100,000 people figured out how to code the 'play a sound' API to make a reasonably convincing fart sound.

    22. Re:Dinosour language by Nightlight3 · · Score: 1

      I have tried multiple times to get into Objective-C and Cocoa. I just can't do it and Objective-C is why.

      After about a week upon installing SDK and playing with their samples, I spent couple weeks writing macros and wrappers (which grew over time to 5-6 thousand macros+functions) for much of Obj-C/Cocoa that I needed, so the worst stuff is out of sight in much of my code. I also ported my string library (the Cocoa NSString is about the worst string library you will ever encounter), linked lists, hash tables, small blocks sub-allocator... and avoid NSStrings, NSDictionary, NSArray... for anything other than Cocoa APIs requiring them. While the resulting code still isn't as clean and elegant as one can get with C++ or Java, or even Javascript with good libraries, it was managable enough to complete several complex apps (full remote desktop control, remote file access/manager, remote cams viewer, and some fun ones, like golf range finder and break reader, which worked quite well despite the flimsy iPhone accelerometer).

    23. Re:Dinosour language by DragonWriter · · Score: 4, Informative

      I've never understood why Apple has such an obsession with Objective C. To me it really does seem like being different for the sake of being different. In the event they really felt like a new language was needed, well, they should have made one (as MS did in the case of C#). Otherwise it makes sense to use C and C++.

      Objective-C is a strict superset of C, so anything that can use Ojective-C can use C as well.

      Apple didn't "feel a new language was needed" for Mac OS X and adopt Objective-C; Mac OS X is, in large part, a repackaging of NeXTstep, for which Objective-C was always the primary language. NeXTstep adopted Objective-C (NeXT didn't invent it, though, they licensed the existing language) in 1988 when both it and C++ were young languages, neither one of which had much penetration.

    24. Re:Dinosour language by maccodemonkey · · Score: 3, Informative

      "There is nothing there that a table of functions pointers along with compiler generated indices for methods/properties, linker/loader address bindings and on rare occasions OS APIs that provide access to these function pointer tables (Windows has such capabilities), cannot accomplish 300-500 times faster (yep, I had single stepped through their method calls & getters/setters, KVO/KVC processing,... and watched tasks that any decent compiler turns into one or two instructions explode into many hundreds of instructions through their runtime interpreter every time you invoke the "feature")."

      Again, you're not understanding the language.

      Using things like KVO/Bindings and distributed objects REQUIRES that the functions be addressed by name, not by address.

      Honestly, if you're using Obj-C as a performance language, you're an idiot. Notice how Objective C has no low level primitives? No basic math functions? No OpenGL abstraction? It's mean to be used as a GUI binding language. This is why in Objective C you are supposed to use C code for your logic (or C++ code if you're so inclined) and then Objective C for your GUI. Objective C was in no shape or form designed for low level logic. This is not a deficiency. This is because it makes a damn good language for doing GUIs.

      The reason there is no linking by address is because a GUI needs to dynamically bind against different sections of code by NAME, not by address. In addition, Objective C supports dynamically adding and removing key values at runtime, which again, goes completely against linking by address.

      You clearly don't know what you are talking about, which is probably why you were shut down on the Apple forum. Learn some KVO and bindings on the Mac, understand what Obj-C is for, and then you'll understand why Apple made the design decisions they did.

    25. Re:Dinosour language by Nightlight3 · · Score: 1

      And i must say i also like categories and delegates, which allow surprisingly well organized code.

      Categories are fine as far they go (in alleviating needless COBOL like block rigidity of class interface/implementation which get in the way for larger classes; without that rigidity they wouldn't buy you much). Unfortunately, without category being able to have its own variables (ideally with its own name space), you still end up bunching all the variables you need in a category back into the header of the main class interface, imported by others (making it more difficult to fully isolate autonomous parts of the category functionality).

      As to delegates, the fixed names of the delegate callbacks make it difficult to have multiple handlers for different callback services of the same type in the same class, e.g. returns from alerts or action sheets for several popups that class may use.

    26. Re:Dinosour language by Nightlight3 · · Score: 1

      You clearly don't know what you are talking about, which is probably why you were shut down on the Apple forum.

      I wasn't shut down on the forum. Just one thread was frozen by some big honcho after they couldn't defend Obj-C in a fair debate.

      Using things like KVO/Bindings and distributed objects REQUIRES that the functions be addressed by name, not by address.

      On iPhone/iPad there are no distributed objects or execution. Even with distributed execution systems why would one use malloc-ed ascii string objects for simple scalar parameters (like integers, small enums, even single bits) to a service. I have written quite a bit of networking code (mostly in CFNetwork & BSD sockets whenever possible), with complex distributed state machines and execution, and all protocols and state machines are pure binary, without needless back and forth conversions to/from ascii, let alone malloc-ing memory block for an ascii string to pass a true/false parameter to a service. If something needs to be distribute the processing, any de/serializing should be wrapped and hidden from the API user. The ascii string objects/name-value dictionaries obsession for simple scalar values is pervasive in Cocoa APIs, almost like some religious rite. Unless that's all you grew up with and don't know any better, it is extremely annoying since it is completely needless.

    27. Re:Dinosour language by maccodemonkey · · Score: 4, Insightful

      iPhone however does have KVO, KVN, and dynamically generated keys (valueForKey, setValueForKey), all of which doesn't work with linking by address.

      You are supposed to write your network code using CFNetwork and BSD sockets. This is as intended. This is also why Cocoa sockets are actually just loosely wrapped CoreFoundation sockets.

      Obj-C is like a screwdriver. You're trying to use a screwdriver like a hammer, and then loudly complaining about it. I'm telling you it's a screwdriver, not a hammer, and that's how it's intended.

      Obj-C is a language for quickly building GUIs. It's not a language for programming the logic. Apple recommends you use C for logic. Apple codes Cocoa itself in C and C++. Obj-C was in no way and shape build for performance situations. That doesn't mean it's a bad language. The things you regard as deficiencies actually make it an extremely strong language for GUI construction. This is also why Apple doesn't try to force you to use ONLY Obj-C.

      Storing objects by name is an EXTREMELY important feature in Obj-C. Yes, it's slow, but as I've said, don't use Obj-C for performance code.

    28. Re:Dinosour language by thoughtsatthemoment · · Score: 1

      I don't know much about Obj-C, but I can understand your frustration. In my C code I use this kind of string objects/name-value dictionaries too. They can be very useful and fun. The difference is in C, it's implemented as a library and no one forces you to use it when you only need a simple primitive type.

    29. Re:Dinosour language by Anonymous Coward · · Score: 1, Informative

      Ok, first off it isn't interpreting anything, the code is compiled. If we define anything that has a runtime as interpreted then pretty much all code, including C, is interpreted.

      In reality, Obj-C is dealing with data: the object, the method selector and the arguments. This is how message sending works, and is a key component of what Alan Kay saw as true OOP. How you implement it is up to you but all that matters is that an object may or may not respond to a method at runtime. This means I can load extra code at any point, create new methods at runtime, have methods forwarded to ther objects and even call a method on an object on the other side of the world. It sounds like a lot of your argument is based around either not understanding or not liking message sending.

      The rest of your argument seems to revolve around the syntax. Syntax is entirely subjective and each person has their preferences. Some prefer C#, some prefer lisp, some, like me, prefer Obj-C. I find it's message sending syntax (especially interspersed arguments) to be great for readability and the inherent verbosity is great for creating self documenting code. You may not like it, but that's your opinion which you are entitled to.

      But don't paint it as a dinosaur language when it is from the same time period as C++, gave a lot of inspiration for Java, and has an object model that is nearly identicle to Ruby. Especially when it has stuff that other languages have yet to do well, such as duck typing with optional static typing

    30. Re:Dinosour language by thoughtsatthemoment · · Score: 1

      Objective-C is a strict superset of C, so anything that can use Ojective-C can use C as well.

      How so? If the libraries you need to use are interfaced through Obj-C, like OSX's GUI APIs, can you use pure C code to call those APIs?

    31. Re:Dinosour language by furball · · Score: 4, Insightful

      I've never understood why Apple has such an obsession with Objective C

      Allow me to explain.

      1. Who owns the language spec? What if there was a modification needed to the language to meet the needs of Apple's hardware that's going to be released to consumers? For example, blocks. How fast could Apple introduce something like that if the language spec was owned by ... for purpose of example, Oracle?

      2. Who owns the runtime? See question 1.

      Objective-C gives Apple the flexibility to make changes as needed to meet their needs without waiting on some standards body or another corporation to get in the way. Apple will not walk away from Objective-C for these reasons.

    32. Re:Dinosour language by shutdown+-p+now · · Score: 2, Informative

      As much as I tend to detest Microsoft, I would love to see C#, or a language like it, become more widespread.

      Have a look at Vala.

    33. Re:Dinosour language by shutdown+-p+now · · Score: 3, Informative

      The Obj-C creator basically didn't know how to code linker-loader address binding and so he just left that part for the runtime to decode on millions of end users CPUs from there on.

      That's by design. It enables dynamic dispatch and delegation.

      (whether that is a good idea or not is another question, but it's intentional, and not because they "didn't know how to do better")

      He also didn't know about name mangling, and left that part of his job for the future programmers to do manually (method names and args are explicitly named, so you end up with arg named calling methods like [obj method:arg1 count:count]).

      Before commenting on programming language design, I would suggest studying the history of said language first. In case of Obj-C, it would be Smalltalk, from which the above syntax of methods names with "args" (they aren't "args", they are just parts of a single method name) comes verbatim.

      And in Smalltalk, it was, quite obviously, not done because the creator "didn't know about name mangling". It was a conscious design choice to improve readability of method calls.

      By the way, if I remember correctly nothing stops you from declaring methods that can be called as e.g. "[foo bar :1 :2 :3]" if you want.

    34. Re:Dinosour language by Nightlight3 · · Score: 2, Interesting

      Dr. Brad Cox -- and he had one main goal in mind: Be a strict superset of C

      That's as worthy a goal as inventing car that is strict superset of the horse carriage or a plane which is strict superset of a hot air baloon. Strict C is not suitable for OOP due to lack of overloading and creation/management of name spaces.

      This is by design. It allows dynamic messaging. You can even, for example, send a message to nil and everything is fine.

      You should't have to execute hundreds of CPU instructions to make a function call that checks for the whether function pointer (or its parent ptr) is null. Three CPU instructions can easily handle it (e.g. OR EAX,EAX; JZ skip; CALL EAX). In fact this dubious "feature" has probably cost me more debugging time than any other "feature" -- an uninitialized/released object quietly returns 0, that breaks something else many steps later, which needs then to be backtracked to the source problem. I would rather the code crashed right there at call, so I can find it on the first crash, rather then reconstructing it from some subtle malfunction much later on.

      Again, only something you need in a statically linked object-inheritance style language like C++.

      There is absolutely no gain (other than saving efforts of the compiler writer at the expense of programmers & end users CPU/battery) in hashing method names and searching them in a hash table for each invocation of class method/property access compared to storing the target function address into an array of pointers (which can be fixed-up/reloacted if needed by loader) and calling them via function pointers retrieved in a single instruction via compiler generated index. The array of pointers, with an extern/export allowing access to it to the app, has full dynamical felxibility equal to anything provided by hashed method names, while using hundreds times fewer runtime CPU instructions (with more complex compiler code instead). Single step once through assembly code of a method call or property access, and recall that all it is doing is one or two instruction worth of actual task.

      Again, by design. Named arguments makes Objective-C one of the best languages for code readability. You don't have to wonder what the arguments are!

      I don't find [obj string:string count:count] any more readable than obj->string(count) or *obj(string,count). It's needless clutter that saved the compiler writer trouble of implementing name mangling & overloading by shoving that part of compiler job to the brains of future programmers. Compiler designer saved himself few weeks at the expense of few hundred million weeks of work for programmers. Great deal.

      I agree that the Cocoa library objects / methods are verbose, but this is a GOOD thing.

      It's a good thing if you are manager who hasn't programmed since college and wish to peek at what some code is doing, without learning the language. Cocoa names are like having manual for the class rewritten over and over in each statement.

      But if you are trying to follow the pattern specific to the task of your code, the vast volume of the Cocoa names smothers it, making even the most trivial algorithm look like rocket science. Dragging with each name its whole ancestry is exactly opposite from the objective of abstraction, which is the key tool in conquering the complexities of programming. All aspects that are not strictly specific to narrow task that some function/method is doing, should be out of sight, just like the one of most valuable abstraction tools in computer languages, functions, hide all the variation of the caller's context and purposes from the implementation of the function. The function knows only the aspect of the world defined by its parameters & return values and need not worry about whether, say rectangle it is operating on is screen rectangle or room floor...

      With its lack of overloading, named args, poor name space partitioning,... the Obj-C is completely contrary to the objectives of abstra

    35. Re:Dinosour language by Nightlight3 · · Score: 1

      By the way, if I remember correctly nothing stops you from declaring methods that can be called as e.g. "[foo bar :1 :2 :3]" if you want.

      That's what I do. Unfortunately, Xcode disables syntax coloring if you don't name the method parameters.

    36. Re:Dinosour language by Nightlight3 · · Score: 1

      why didn't you use objective c++?

      I did try it on one of the apps, but found the mixing of the two quite different OOP schemes even more discordant.

    37. Re:Dinosour language by mini+me · · Score: 1

      With its lack of overloading


      - (NSString *)methodWhichAcceptsAnyTypeOfObject:(id)object
      {
          if ([object isKindOfClass:[NSString class]]) {
              return object;
          } else if ([object isKindOfClass:[NSArray class]]) {
              return [object componentsJoinedByString:@" "];
          } else {
              return nil;
          }
      }

      Argue that the syntax sucks all you want, but the functionality is still there. If it looks like a duck and it quacks like a duck, it must be a duck.

      I am actually quite curious how you propose one might cleanly implement true operator overloading and duck typing at the same time. What if my object is a cow, but I want to pass it to the chicken overload?

    38. Re:Dinosour language by Graff · · Score: 3, Informative

      For adding properties to a class you have enter the same info in triplicate (variable delcaratiom, property declaratiom, getter/setter declaration), so there is lots of cut & paste, doing by hand the job that compiler should have been doing.

      Looks pretty simple to me:

      @interface Employee : NSObject {
          @private
              int securityLevel;
      }
       
      @property(assign) int securityLevel;
       
      @implementation Employee
      @synthesize securityLevel;
      @end

      Counting just the relevant lines, that takes care of the variable declaration, its properties, and its getter and setter in 3 lines (approximately 82 characters).

      Here's the equivalent in C++:

      class Employee {
          public:
              void setSecurityLevel (int newLevel);
              int getSecurityLevel ();
          private:
              int securityLevel;
      }
       
      void Employee::setSecurityLevel (int newLevel){
              securityLevel = newLevel;
      }
       
      int Employee::getSecurityLevel (){
              return securityLevel;
      }

      That's a grand total of 9 relevant lines (approximately 217 characters).

      Java:

      class Employee{
          private int securityLevel;
       
          public int getSecurityLevel(){
              return securityLevel;
          }
       
          public void setSecurityLevel(int newLevel){
              securityLevel = newLevel;
          }
      }

      7 relevant ines (approximately 153 characters).

      So, in this circumstance Objective-C is about 1/3 of the characters or lines than the equivalent C++ code and about 1/2 of the characters or lines than the equivalent Java code. Objective-C is hardly a complicated or verbose language. I'm sure you could dig around and find languages that could do the equivalent in less code but this is by no means unreasonable.

    39. Re:Dinosour language by Graff · · Score: 1

      Objective-c message passing is quite fast, only 4x the cost of a virtual table call in C++

      Not to mention you could use a method implementation pointer (another good site) to skip all of the behind-the-scenes dynamic dispatch and then you are right around the speed of a normal C function call. Objective-C lets you have the ease of message passing when you want it and the speed of C function calls when you need it.

    40. Re:Dinosour language by Graff · · Score: 1

      If the libraries you need to use are interfaced through Obj-C, like OSX's GUI APIs, can you use pure C code to call those APIs?

      Sure thing, using objc_msgSend and similar functions found in the Objective-C Runtime Reference.

    41. Re:Dinosour language by Graff · · Score: 1

      I also ported my string library (the Cocoa NSString is about the worst string library you will ever encounter), linked lists, hash tables, small blocks sub-allocator... and avoid NSStrings, NSDictionary, NSArray... for anything other than Cocoa APIs requiring them.

      How so? What, specifically, didn't you like about these Cocoa frameworks?

      I will admit that they are quite different philosophically than what you might find in the C++ STL or Java libraries but once you grok the thinking behind them they are quite useful. Perhaps you just needed some further understanding of how they work and how to best use them before you implemented your own solutions?

    42. Re:Dinosour language by thoughtsatthemoment · · Score: 1

      Thanks for the tips, because win32 APIs feel like a real paradise now.

    43. Re:Dinosour language by Graff · · Score: 1

      If you wish to get file properties, they return you malloced ascii dictionary of ascii name-value pairs, for size, time date,... (all in ascii pairs that need to be parsed back to binary values that your code needs).

      Of course it's all Unix so you could just use stat instead and get everything as more direct types.

      The KVC and KVO components are there as a convenience for generic programming, such as UI programing, not as a replacement for more direct methods.

    44. Re:Dinosour language by Graff · · Score: 2, Interesting

      Thanks for the tips, because win32 APIs feel like a real paradise now.

      Dig into the underlying implementation of a language and it's bound to get a little complicated. Stuff like objc_msgSend is not meant to be used often, it's there to enable you to do odd things that the simple and easy to use APIs don't allow. You use it carefully and build a decent set of methods around that, then use those instead of calling objc_msgSend a ton.

      There's quite a bit of crusty win32 API running around that is way more complex than the internals of Cocoa.

    45. Re:Dinosour language by bar-agent · · Score: 1

      Well, we are still trying to make it successful. Come on by and help. :)

      --
      i'd hit it so hard, if you pulled me out you'd be the king of britain [bash.org]
    46. Re:Dinosour language by bar-agent · · Score: 3, Insightful

      Now that you mention it, KVC/KVO is another one of ridiculous and wasteful (on end user's CPU & programmer's time) "features" of the Cocoa API. Passing simple numeric arguments of time critical functions (such as animation control) as ascii string objects (not just ascii strings, but malloced strings, which need to be parsed & converted into binary integer/float then free-ed) is utter idiocy. If you wish to get file properties, they return you malloced ascii dictionary of ascii name-value pairs, for size, time date,... (all in ascii pairs that need to be parsed back to binary values that your code needs). It's beyond stupid.

      What? No. What you describe would indeed be stupid, but that's not what happens.

      All string literals are shared compile-time constants. You can use @"color" in seven different places and they all refer to the exact same address. So you aren't interpreting ASCII strings, but simply doing a pointer comparison. The only time they need to be parsed is when they are part of a key path, like @"moulding.color", and there is a separate function for evaluating key paths so that the common case is easily optimized.

      Furthermore, key values like 13.5 or 2010-May-23 are not stored or passed around in ASCII form, but wrapped in an NSValue object or a subclass, similar to Java's Integer objects.

      --
      i'd hit it so hard, if you pulled me out you'd be the king of britain [bash.org]
    47. Re:Dinosour language by Jesus_666 · · Score: 1

      So use primitive types when you don't need the complex ones. Objective-C is a superset of C. If you need the speed, just drop down to C and pass the result to a Foundation class when you're done.

      --
      USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
    48. Re:Dinosour language by Jesus_666 · · Score: 1

      It's a good thing if you are manager who hasn't programmed since college and wish to peek at what some code is doing, without learning the language. Cocoa names are like having manual for the class rewritten over and over in each statement.

      Also if you ever have to read someone else's code. For example, what exactly does this line (taken from the Gish sources) do?

      createmenuitem("",0,0,16,1.0f,1.0f,1.0f,1.0f);

      Yeah, it creates a menu item but without digging through the code I won't know for sure what the parameters are good for, especially the second through fourth ones. I can track down which file createmenuitem() is declared in and read its signature but that quickly gets old if you have to do it a lot. Having named parameters makes it easier to find your way around in an unfamiliar codebase in my opinion.

      --
      USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
    49. Re:Dinosour language by kthreadd · · Score: 1

      He also didn't know about name mangling, and left that part of his job for the future programmers to do manually (method names and args are explicitly named, so you end up with arg named calling methods like [obj method:arg1 count:count]).

      A agreed on some of the things you mentioned, pointing out the lack of namespaces particularly, but this you got wrong. Method arguments are not named. In Objective-C the method arguments are placed within the method name, which is a rather unusual way but still fundamentally different from named arguments, note e.g. that the first argument would not be named in that case. In your example, the actual method name is "method:count:", colons included.

    50. Re:Dinosour language by Anonymous Coward · · Score: 0

      Nonsense. Look at how Microsoft handles this thing with C++: Microsoft is an integral part of the committee that standardizes the language. This is not to press for the features they want, but to prevent the ones they don't want from happening. For the features they want, they make their own compilers support them as extensions. The mere pressure of those features being in use is what makes them "standard", no need for long meetings.

    51. Re:Dinosour language by clay_shooter · · Score: 1

      "the creator didn't understand the value of name space partitioning in OOP" Dr Cox certainly understood. He just wanted to keep things as close to "pure" C as possible, and had a different way of partitioning spaces -- use 2 letter codes. This is primitive but surprisingly effective, and why all Cocoa objects begin with NS. Think of all the typing this saves, and you never have to wonder what namespace context you're in.

      I like this approach and have used it in some large Java applications with good success. Packaging is great for name space divisions but naming conventions reduce programmer stress. How many "Date" classes are there in Java? How do you know which one is being used at any given time? java.sql.date java.util.Date, org.xxx.Date? Some classes import more than one class of the same name so that you can convert between them. (ugh) Look at Java annotations is that @Required tag? Is it spring, hibernate, libraryXXX or something else? I'd rather that every Apache class started with some standard prefix.

    52. Re:Dinosour language by clay_shooter · · Score: 1

      Named parameters are "a good thing". It is a piece of smalltalk syntax that works for any language.

    53. Re:Dinosour language by jeff_at_betaredex · · Score: 1

      I don't think you understand what overloading means; It's not overloading if you write the equivalent of a switch statement (your chained ifs) yourself. That is the compilers job. As to duck typing: people do this all the time with c and function pointers, and c++ and multiple inheritance.

    54. Re:Dinosour language by yyxx · · Score: 1

      Smalltalk syntax is different from named parameters. For Smalltalk, the order of the names matters and they are part of the method name. That makes Smalltalk syntax less verbose than named parameters when you do use parameter names.

    55. Re:Dinosour language by yyxx · · Score: 1

      "He also didn't know about name mangling" Again, only something you need in a statically linked object-inheritance style language like C++.

      The function of name mangling is to do type checking and overloading for function and method argument types even if the linker doesn't support it. The lack of name mangling in Objective-C means that you can have inconsistent argument type declarations for messages in different compilation units without the compiler or runtime ever noticing that you're sending messages with incorrect argument types. It's a gaping type hole in Objective-C, and exactly the kind of problem that C++ took seriously and fixed. It's not a frequent source of problems in practice, but it can be a total b*tch when it does happen, and it's so easy to fix.

      Objective-C has always been frustratingly close to a really great language. They should have fixed the holes in the type system, they should have added garbage collection early on (fixed now), and they should have more cleanly separated "Smalltalk" and C code, instead of making Smalltalk messages kind of a foreign body within C code. None of those would have been hard, but the people who created the language just didn't give a damn. And potential users (like myself) just went on to languages like C++ that just looked better at the time.

    56. Re:Dinosour language by angel'o'sphere · · Score: 1

      .... There is absolutely no gain (other than saving efforts of the compiler writer at the expense of programmers & end users CPU/battery) in hashing method names and searching them in a hash table for each invocation of class method/property access compared to storing the target function address into an array of pointers (which can be fixed-up/reloacted if needed by loader) and calling them via function pointers retrieved in a single instruction via compiler generated index ....

      Of course there are benefits. You only lack the knowledge (you could read them up) and/or the experience (if you had more you had discovered the benefits already ...). However I'm to lazy to teach you ;D

      Anyway, instead of ranting over Objective-C, why don't you use C or C++ instead and be happy?

      I strongly suggest to read a bit about the design ideas of languages you might use. E.g. "The Design and Evolution of C++" in case of C++. I'm sure there are articles/books regarding those decisions for Objective-C as well.

      I for my part always hated a lot of the braindead stuff in C++, but after reading TDAEOC++ I at least forgave Bjarne ;D

      angel'o'sphere

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    57. Re:Dinosour language by Anonymous Coward · · Score: 0

      "Objective-c message passing is quite fast, only 4x the cost of a virtual table call in C++"

      Only 4x ? Really ? "ONLY" fucking 4x times ? so being 4x times slower isn't so bad after all ?
      There should be a programming license to check on crap programmers and yours should be revoked.
      And you can use objects without virtual methods, in C++, while an object in Objective Crap can only have virtual methods.

      C++ programmers don't have to pay the cost of virtual methods when they don't need to. Objective C programmers will have to drop down to plain old C to get faster code. Not to mention the like of templates...

      Macfag.

    58. Re:Dinosour language by mini+me · · Score: 1

      It didn't claim it was overloading, only that it achieves the same effect. My question still stands: How can you implement overloading when the compiler can never truely know what type of object is being passed? Moving my switch statement to objc_msgSend doesn't gain you much.

    59. Re:Dinosour language by Anonymous Coward · · Score: 0

      Um... Apple did not add blocks to Objective-C. They added them to C. They don't care who owns the language spec; it's a platform-specific extension. They have however published their implementation in GCC and Clang and submitted them for inclusion in the next C standard.

      http://developer.apple.com/mac/articles/cocoa/introblocksgcd.html

    60. Re:Dinosour language by Graff · · Score: 1

      How can you implement overloading when the compiler can never truely know what type of object is being passed?

      For that matter, what's the real difference between:

      void doSomething(int intField);
      void doSomething(float floatField);

      and

      void doSomethingInt(int intField);
      void doSomethingFloat(float floatField);

      That's really what is happening behind the scenes in C++, it is generating two entirely different methods at compile time, nothing is done at run time. They just appear to have the same name to the programmer. The same sort of thing occurs with templates. You can do it in Objective-C too:

      - (void) doSomethingInt: (int) intField;
      - (void) doSomethingFloat: (float) floatField;

      In fact, in Objective-C you can even do it at run time.

      Sure, the C++ compiler is doing some of the work for you. Personally, I'd rather just do it by hand and be sure that everything is implemented as I intended. There are quite a few gotchas with C++ overloading and templates that can bite you in the butt when you least expect it.

      As far as operator overloading goes, it's a hugely controversial subject and most people agree that although it can be convenient it also can cause a huge mess. Does that overloaded operator+ mean you should add the values or append them? Is an entirely new object returned or do one or more of the involved objets get changed? If we are talking about complicated objects should operator+ merge them or sum up all their elements? You are usually better off defining regular methods such as add and merge which a programmer needs to explicitly read and understand than overloading operators.

    61. Re:Dinosour language by Anonymous Coward · · Score: 0

      If faster code is your top priority, then you should be coding in assembly. Believe it or not, there are a whole wealth of reasons for deciding a coding language with speed only being one of them.

    62. Re:Dinosour language by GlassHeart · · Score: 1

      There's a third option: I don't enjoy it, dickhead. I hate the language and since I have no pressing need to learn it or use it (other than a mild interest in Mac programming) I haven't bothered.

      That's not a third option, that's the first possibility I mentioned: you didn't try very hard.

      It's not that I don't understand it.

      ...which contradicts your "I just can't do it" statement. You can, in fact, do it. You just chose not to, which is not a moral judgement against you, so please dispense with the foul language.

      Put another way, what I was trying to say is that if you wanted it more, you'd have figured it out, unless you're a lousy programmer. Objective C took me a few weeks of spare time to figure out, and it's much like any other tool.

    63. Re:Dinosour language by Anonymous Coward · · Score: 0

      Your C++ is gratuitously verbose:

      class Employee {
      public:
              void setSecurityLevel (int newLevel) { securityLevel = newLevel; }
              int getSecurityLevel() { return securityLevel; }
      private:
              int securityLevel;
      }

      There. I fixed it for you.

      7 lines, 155 chars (C++)
      vs
      10 lines, 150 chars (Obj-C)

      C++ ends up @ 160 chars though because it's just proper to add const to the getter function.

      C++ wins later because there's no verbosity in calling the functions.

    64. Re:Dinosour language by Graff · · Score: 1

      Of course you can define the methods in-line in this fashion although you are now mixing interface and implementation which is not the best thing to do unless you have a really good reason for doing so. Then again if you use templates you (mostly) have to do this anyways.

      Where possible, I always keep my interface separate from implementation. Yes, it's a bit more verbose but unless you really need something inlined you are almost always better off keeping them separate.

      Anyways, my real point is that Objective-C is not really more verbose than other major languages. I'm sure there are cases where some concept or another is shorter/easier in one language than the others but overall they all get the job done.

  23. Re:Tiobe also explains how it determines it rankin by gbjbaanb · · Score: 0

    At best it shows that Objective-C programming has resulted in more discussions and questions. Whether it is "popular" or not is a bit more subjective.

    So when did 'more discussions about something' not equate to 'more popular'?

  24. Re:Tiobe also explains how it determines it rankin by Anonymous Coward · · Score: 0

    So, the whole "metric" is basically a Googlefight for programming languages?

  25. Re:Tiobe also explains how it determines it rankin by Anonymous Coward · · Score: 0

    They tried to count it, but it was indistinguishable from line noise.

  26. As the Fark crowd likes to say by Sycraft-fu · · Score: 3, Insightful

    This.

    Objective-C has a lot of buzz, since Apple has a lot of buzz. That doesn't mean it is getting used in a lot of projects, just that a lot of people are talking about it. Just because there isn't a lot of chatter online about something, doesn't mean it isn't used.

    For example I suspect C++ is actually much higher. Why? Because it is the language of video games by and large. Pretty much any PC and Xbox 360 game are written in C++, usually using Visual Studio. However you don't see a lot of chatter about it online since it is being done professionally and it just kind of an assumed thing in the games industry.

    Well, that makes for a rather large amount of apps out there, even if they don't get talked about all that much.

    Likewise, though I suspect C is high up on the list due to embedded applications, I think that their data on it is flawed. The reason they see so much is likely Linux, which of course uses a lot of C. Fine, but Linux also gets talked about a lot online, since it is open source. So the amount of discussion it generates in relation to code is much higher than a commercial project.

    In general their methods are rather flawed.

    1. Re:As the Fark crowd likes to say by aztracker1 · · Score: 2, Interesting

      I'd say Java and .Net languages (C#, VB) are probably the most popular in terms of use, mainly because they are the most used for internal business development, which is the majority of dev, just fewer users per app. Though if you count web apps and dev, then Javascript is probably #1

      --
      Michael J. Ryan - tracker1.info
    2. Re:As the Fark crowd likes to say by siloko · · Score: 2, Funny

      Javascript is not a language it is a kind of toffee apple . . .

    3. Re:As the Fark crowd likes to say by sreservoir · · Score: 1

      it's turing-complete enough. just like brainfuck.

    4. Re:As the Fark crowd likes to say by Lars+T. · · Score: 1

      This.

      Objective-C has a lot of buzz, since Apple has a lot of buzz. That doesn't mean it is getting used in a lot of projects, just that a lot of people are talking about it. Just because there isn't a lot of chatter online about something, doesn't mean it isn't used.

      For example I suspect C++ is actually much higher. Why? Because it is the language of video games by and large.

      First of all: Objective-C came in at place 10. Predicting that C++ is probably higher takes a fucking genius.

      As for the number of projects it is used in, the number of apps on the App Store is a pretty solid lower bound.

      --

      Lars T.

      To the guy who modded me down from perfect to terrible Karma - Apple haters still suck

    5. Re:As the Fark crowd likes to say by Kensai7 · · Score: 1

      Likewise, though I suspect C is high up on the list due to embedded applications, I think that their data on it is flawed. The reason they see so much is likely Linux, which of course uses a lot of C. Fine, but Linux also gets talked about a lot online, since it is open source. So the amount of discussion it generates in relation to code is much higher than a commercial project.

      In general their methods are rather flawed.

      Hmm, there is something else though. The advent of parallel programming has brought much interest to the "C" and C-syntax, more than anything else. Let's not forget the new CUDA and OpenCL are based mainly (and integrate) on C. Perhaps this is another reason for C's popularity.

      --
      "Sum Ergo Cogito"
    6. Re:As the Fark crowd likes to say by Nursie · · Score: 1

      Don't count C out. It's in your phone, your desktop OS, a hell of a lot of enterprise software, transaction systems etc etc

      There's still a lot of us C coders around. If anything I'd say that it could be underrated because it's not hip, cool or new. It just is.

    7. Re:As the Fark crowd likes to say by aztracker1 · · Score: 1

      I'm talking # of developers, not breadth of distribution... there are far more devs doing internal dev for businesses, than creating distributed products...

      --
      Michael J. Ryan - tracker1.info
  27. Re:Tiobe also explains how it determines it rankin by Anonymous Coward · · Score: 0

    Objective-C programming is a dead end. I hate Objective-C programming. Any time spent doing Objective-C programming is wasted as far as I'm concerned. I can't understand why it is so popular.

  28. Re:Tiobe also explains how it determines it rankin by Intron · · Score: 1

    No. Older than that. It's an SROM.

    --
    Intron: the portion of DNA which expresses nothing useful.
  29. manager to worker ratio by lotho+brandybuck · · Score: 1
    Given the fact that most companies I've worked in lately have had more manager types than actual producers, the most popular language I've seen is PHB.

    (pointy head boss)

  30. As an old C programmer, let me say... by mandelbr0t · · Score: 1

    int main(int argc, char **argv) { printf("w00t!\n"); double_contracting_rate(); return 0; }

    --
    "Please describe the scientific nature of the 'whammy'" - Agent Scully
    1. Re:As an old C programmer, let me say... by shutdown+-p+now · · Score: 2, Funny

      Surely, as an old C programmer, you rather intended to say:

      main(argc, argv)
        int argc;
        char **argv;
      {
        stroke_beard();
        printf("w00t!\n");
        triple_contracting_rate();
      }

    2. Re:As an old C programmer, let me say... by Anonymous Coward · · Score: 0

      Surely, as an old C programmer, you rather intended to say:

      main(argc, argv)

        char **argv;
      {

        stroke_beard();

        printf("w00t!\n");

        triple_contracting_rate();
      }

      FTFY

  31. Python over Perl? by Anonymous Coward · · Score: 0

    I cant believe Python is now more popular than Perl..... :(

    1. Re:Python over Perl? by Manhigh · · Score: 1

      Perl is awesome when it comes to parsing ascii but I think Python has an inherent edge in its readability.

      --
      "Open the pod by doors, Hal" > "I'm afraid I can't do that, Dave" sudo "Open the pod bay doors, Hal" > alright
    2. Re:Python over Perl? by TheRaven64 · · Score: 1

      All the people who used to use VB now seem to use Python.

      --
      I am TheRaven on Soylent News
    3. Re:Python over Perl? by Jesus_666 · · Score: 1

      Well, Perl is pretty much dying out, as far as I can tell. When people pick up a scripting language they usually go for Python or Ruby. Perl isn't seen as offering much over either of them so even those who do want to pick up more involved languages like Lisp pass it up.

      --
      USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
    4. Re:Python over Perl? by trialcode · · Score: 1

      A quick glance at planet.perl.org says you're talking out of your ass. Perl offers a mature language, an experienced community and an unmatched repository of reusable libraries.

    5. Re:Python over Perl? by Jesus_666 · · Score: 1

      I'm talking out of personal observations. Of course there is a large Perl community. Perl was the scripting language for a long time. What I'm saying is that I see very few new users pick it up. It's not dying quickly but I expect the community to slowly shrink as old users die/migrate off and only a small amount of new users comes in.

      --
      USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
  32. Another sign... by leonbloy · · Score: 2, Interesting

    ... I value most than Tiobe's dummy ranking, is the popularity of tags in Stackoverflow.
    Granted, it correlates more with questions asked by programmers (many of them beginners) than with jobs.

    Anyway, you can see that also there "Objective-C" has a (surprising for me) high position (as well as "iPhone").

    1. Re:Another sign... by SolitaryMan · · Score: 1

      StackOverflow is mostly run by Windows/.NET programmers, so results are somewhat biased there.

      --
      May Peace Prevail On Earth
  33. Strict Superset? by Jhyrryl · · Score: 1

    Sorry to troll, but what exactly is a "strict superset"? A superset is a set that contains another set, in this case Objective-C contains C; all of it. If it didn't contain all of C, then it wouldn't be a superset at all. So what makes a superset strict?

    --
    Jhyrryl
    1. Re:Strict Superset? by putaro · · Score: 3, Funny

      The whip and high heels.

    2. Re:Strict Superset? by Shimbo · · Score: 2, Informative

      Sorry to troll, but what exactly is a "strict superset"?

      Well, the strict definition is that it's a superset, and it's not an identical set.

      You probably want the non-strict definition which is "we haven't given up on compatibility with C, like the C++ folks did".

    3. Re:Strict Superset? by fbjon · · Score: 1

      Not quite. A non-strict superset would mean that Obj-C may or may not actually be a proper superset of C, they could be equal. A strict superset means Obj-C contains C and definitely some more. Subtracting some subset of C from Obj-C would mean having abandoned compatibility, and then Obj-C would no longer be any kind of superset, but merely intersecting.

      --
      True confidence comes not from realising you are as good as your peers, but that your peers are as bad as you are.
    4. Re:Strict Superset? by DragonWriter · · Score: 4, Informative

      Sorry to troll, but what exactly is a "strict superset"? A superset is a set that contains another set, in this case Objective-C contains C; all of it. If it didn't contain all of C, then it wouldn't be a superset at all. So what makes a superset strict?

      A simple analogy:

      "Strict superset" is to "superset" as ">" is to ">=".

    5. Re:Strict Superset? by swillden · · Score: 2, Insightful

      Sorry to troll, but what exactly is a "strict superset"? A superset is a set that contains another set, in this case Objective-C contains C; all of it. If it didn't contain all of C, then it wouldn't be a superset at all. So what makes a superset strict?

      A simple analogy:

      "Strict superset" is to "superset" as ">" is to ">=".

      Technically, yes. That's what it means in a math class or a logic class. But that's not what "strict" means in this context.

      What it means here is that Objective-C is a superset, in the sense that any legal and correct C program is a legal and correct Objective-C program that does the same thing. So the "strict" adjective is technically redundant. The reason it isn't redundant in practice is because other languages (notably C++) are close enough to being supersets of C that they're called supersets of C, even though there are some C programs that are not valid in those languages, or that are valid but work differently.

      So, basically, the situation is that "superset" in this context has been abused a little bit, applied to languages that are almost but not quite supersets. So for Objective-C we say it's a strict superset to mean that it actually is a superset.

      Were the meaning what you suggested, the "strict" adjective would be unnecessary, because the only language that is a superset of C but not a strict superset (I'm using the terms correctly here, not loosely as they have been misapplied to C++, etc.) is C itself.

      Of course, for any of the above to make sense, you also have to specify which version of C you're referring to, and you have to pick one that Objective-C actually is a superset of.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    6. Re:Strict Superset? by Anonymous Coward · · Score: 0

      Sorry to troll, but what exactly is a "strict superset"? A superset is a set that contains another set, in this case Objective-C contains C; all of it. If it didn't contain all of C, then it wouldn't be a superset at all. So what makes a superset strict?

      C++ is sometimes/repeatedly claimed to be a superset of C. If you use that Newspeak, you need another another word to use when a language actually IS a superset of C.

    7. Re:Strict Superset? by Anonymous Coward · · Score: 0

      In other words, Objective-C is not (just) C. If they would've omitted the "strict" part, I would have guessed they were the same thing!

    8. Re:Strict Superset? by Anonymous Coward · · Score: 0

      A simple analogy:

      "Strict superset" is to "superset" as ">" is to ">=".

      Yes, that is mathematically correct. In this context it refers to the mind-numbingly obvious fact that Objective-C is not identical to C. Still it is customary to say Objective-C is a "strict superset of C", just in the way that you say Apple fanboys are "clueless dingbats", as if there was a crowd of insightful dingbats around.

  34. ok by gmiernicki · · Score: 1

    tiobe.com enters top10 websites on the internet after being /.'d ... FATALITY!

  35. Re:Tiobe also explains how it determines it rankin by Anonymous Coward · · Score: 0

    # it's real life drama
    it's only there by popular demand /#

  36. Re:Tiobe also explains how it determines it rankin by pizzach · · Score: 3, Funny

    ARGH! Stop artificially inflating VB's results by using VB's name twice in a post!

    --
    Once you start despising the jerks, you become one.
  37. slashdoted by Anonymous Coward · · Score: 0

    too bad the site went kaputttt....

  38. Re:Tiobe also explains how it determines it rankin by Anonymous Coward · · Score: 0

    objective-c sucks "objective-c sucks"

  39. Re:Tiobe also explains how it determines it rankin by lul_wat · · Score: 1

    I have been programming in Objective-C and I can tell you it's pretty unpopular with me.

    --
    Divide a cake by zero. Is it still a cake?
  40. he was emulating SmallTalk dynamic binding by peter303 · · Score: 4, Informative

    Steve Jobs had enticed Xerox Parc people to Apple, then NeXT. So this methodology seemed advanced at the time. Also Objective-C was commercially supported while C++ was still basically an open-source hack in the mid-1980s. I was an independent NextStep developer. It was unclear what would win. But as usual cheap and open beat a language you had to buy.

    When NeXT took over Apple (oops I mean the other way around :-), the new MacOS was NexTStep layered with old Mac APIs.

    1. Re:he was emulating SmallTalk dynamic binding by Macrat · · Score: 1

      I was an independent NextStep developer.

      Too bad you didn't work for Lighthouse. Today you would be working at S'noracle pushing Java.

    2. Re:he was emulating SmallTalk dynamic binding by yyxx · · Score: 1

      Your history is wrong. NeXT didn't get Objective-C from PARC people, it got it from StepStone. Also, Objective-C didn't fail because it was proprietary; there were good and free Objective-C compilers around sooner than there were good and free C++ compilers around.

      I think the reason Objective-C failed was because of its unnatural syntax, holes in its type system, and lack of automatic resource management. C++ had natural syntax, at least attempted to go for type correctness, and smart pointers. Although philosophically, I like dynamic type systems better, those difference made me choose C++ over Objective-C back in the late 80's.

      It's a shame, really: if Objective-C had been just a little better, the computer and software industry would look very different. But many of the old problems still exist to this very day. And nowadays, languages like C# are really better all around.

  41. "The Software Standards Company" by Anonymous Coward · · Score: 0

    How can Tiobe be the "The Software Standards Company" if I can't even view their website without javascript being switched on?

    1. Re:"The Software Standards Company" by larry+bagina · · Score: 1

      Javascript is a standard.

      --
      Do you even lift?

      These aren't the 'roids you're looking for.

  42. ?! More Lua, LISP and Go than TSQL? by Invisible+Now · · Score: 1

    I have trouble believing TSQL (the MS SQL Server flavor of SQL) has less practioners than Lua, LISP or go. With three times more servers than oracle and all the MS shops out there - Can this be right?

    --

    "Knowing everything doesn't help..."

    1. Re:?! More Lua, LISP and Go than TSQL? by Jhyrryl · · Score: 1

      Well, to give you an example of Lua's popularity, search Google for WoW Addons.

      1,660,000 results versus a search for TSQL giving 402,000 results. When comparing those results, remember that the addon search results come from people actually using Lua, whereas the TSQL results are dominated by informational pages.

      --
      Jhyrryl
    2. Re:?! More Lua, LISP and Go than TSQL? by hey! · · Score: 1

      Well, I'd bet most SQL Server databases are just backing stores for form data. The main reason to use SQL Server is because you're using Microsoft's development tools and stack. If you follow that methodology, you probably use the IDE GUI to paint your database design and do all your database validation in middle tier or user interface code.

      In any case, T-SQL is just about the worst procedural extension of SQL I've ever seen, and I've been in the business for years and used lots of them. What's the first design principle you learn when you take a computer language design class? Orthogonality. T-SQL's various restrictions kind of make sense if you squint at them. They're not logical necessities, but they're the kind of thing you might impose if you wanted to make sure the database routines ran fast without doing too much work on the optimizer.

      T-SQL also is the worst version of SQL I've used, among the major database players. What surprised me when I looked into it was that the things that were really a pain were allowed by the ANSI SQL standard (e.g., T-SQL's handling of column aliases). Again, I think this is because the target audience for MS SQL don't do a lot at the database tier, in comparison to the audience for a product like Oracle.

      That doesn't mean it's a bad product for its intended audience: people who want a database as part of an all Microsoft toolbox. But for people who are seriously interested in the database tier, T-SQL is crap as a SQL implementation and even more so as a procedural language. Once you get to the point of using T-SQL, chances are you'll decide there must be some other way of getting the job done.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  43. Standard C++ is not verifiably type-safe by tepples · · Score: 1

    The way you write code in situations like this is an abstraction layer. You write the core code in C or C++, then write an iPhone UI in Objective-C and a WinMo UI in... whatever

    One would write the Windows Phone 7 front-end in C# using the Silverlight or XNA API. However, this leaves the question open about a language for the back-end. Standard C++ compiles to CLR bytecode, but the resulting assembly is not verifiably type-safe, and the .NET based target platforms (Xbox 360 and Windows Phone 7) reject assemblies that are not verifiably type-safe. The C++/CLI compiler can be forced to generate verifiably type-safe code with the /clr:safe switch, but the syntax and semantics of pointers in verifiably type-safe C++/CLI code are incompatible with standard C++.

    1. Re:Standard C++ is not verifiably type-safe by shutdown+-p+now · · Score: 1

      The C++/CLI compiler can be forced to generate verifiably type-safe code with the /clr:safe switch, but the syntax and semantics of pointers in verifiably type-safe C++/CLI code are incompatible with standard C++.

      Of course - so you will have to limit yourself to a subset.

      Now obviously a subset of C++ with no raw pointers (or native arrays, which are similarly restricted in /clr:safe) is rather useless. You need some kind of references to construct most non-trivial data structures...

      So here's the trick: write your own template wrapper for references and arrays. A native C++ implementation for that would just wrap a raw pointer and a plain C array. A C++/CLI implementation would wrap an object handle. Then you write code using these wrappers only. The result is a subset of C++ portable between iPhone and WP7.

      I can go into more details (including code) if the above isn't quite clear.

  44. Non-Obj C Programming of iPhone by TheSync · · Score: 1

    By the way, if you dislike Objective C, try these Javascript frameworks for iPhone development: Titanium (which is cross-platform to some extent with Android) and PhoneGap.

    This makes life as easy as navigator.camera.getPicture(getPicture_Success, null, options);

  45. Not verifiably type-safe by tepples · · Score: 1

    iPhone can be developer using C/C++, and a subset of C++ can compile to the CLR.

    I mentioned why that won't work in this comment.

    1. Re:Not verifiably type-safe by gbjbaanb · · Score: 1

      I thought it was, unless you compile it with the unsafe options and use the unsafe features, the C++/CLI language is verifiable.

      From wrox press:
      The compiler does, however, support compilation options to restrict programs to a verifiable subset of the language

  46. Indeed.com trends by ewg · · Score: 1

    Indeed.com finds many more job listings for Ruby than Objective-C, despite their relative TIOBE ranking.

    http://www.indeed.com/jobtrends?q=%22Ruby%22%2C%22Objective-C%22&l=

    --
    org.slashdot.post.SignatureNotFoundException: ewg
  47. I wasn't talking about Windows. by tepples · · Score: 1

    Windows aps don't require .Net bytecode

    I wasn't talking about Windows. I was talking about Windows Phone 7 and Xbox 360,* which do require verifiably type-safe CLR bytecode.

    * Xbox 360 has two different devkits. The cheap one requires verifiably type-safe CLR bytecode. The expensive one appears to require a corporation, a dedicated office, and past commercial titles on another platform. I am discussing the cheap one because I see no way for a micro-ISV to qualify for the expensive one.

  48. Thanks for reminding me :) by AffidavitDonda · · Score: 1

    It's better to just pretend that Tiobes numbers are meaningful.

    I always forget, that as technicians we have to keep that attitude of perfection toward users and lower ranks. My fault, I never get Wittgensteins sentence out of my head: "Of what one can't speak, one must pass over in silence."

  49. Re:Tiobe also explains how it determines it rankin by deniable · · Score: 2, Funny

    Hey, there are a lot of people who prefer VB. Matter of fact, I'm not one.

  50. Silicon Valley, China, and India by mbessey · · Score: 1

    Most C programming these days is systems level - drivers, compilers, database engines, that sort of thing. If you're not working in the embedded world, you probably won't see much C, but if you're writing Linux drivers (for example), C is what you'll be using. So come on out to sunny California, and hack on some kernel modules.

    Or, go to work in India or China, for the companies that have outsourced their systems development.

  51. Re:Tiobe also explains how it determines it rankin by pizzach · · Score: 1

    Ha ha. I was just joking and never have used VB myself. QBasic still causes me nightmares though. I can program in C,PHP,Java, Javascript, bit of assembly, perl, python, etc etc. But pulling out my first book for my first failed language from 12 years ago (QBasic for Dummies) I still don't have a damn clue what any of it does. It's enough to scare me away from even trying VB.

    --
    Once you start despising the jerks, you become one.
  52. Using Objective-C for 22 years by Anonymous Coward · · Score: 1, Insightful

    I have been using Objective-C for 22 years. I have written two well regarded programming books. I am writing another one now that emphasizes ANSI C on iPhone OS devices. It is not necessary to write more than a few lines of Objective C when developing iPhone applications.

    I am a C++ guru. I prefer Objective-C.

    I manage a large commercial software product that contains a lot of Java code as well as C/C++. I prefer Objective-C.

  53. Because it buys you speed in development by SuperKendall · · Score: 3, Interesting

    I've never understood why Apple has such an obsession with Objective C. To me it really does seem like being different for the sake of being different.

    After you use it for a while it grows on you substantially.

    It's simply a different path than other languages have chosen, but it has a lot of power - like KVC observing of property changes on objects, or the way I can use categories to extend libraries I don't have code for.

    And hands down Interface Builder is the most usable GUI development tool I have ever used, which stems directly from how Objective-C interacts with objects. In every other language I ended up abandoning GUI design tools to code UI by hand, but IB is a major partner in every iPhone/Mac UI I write.

    Yes the syntax is verbose but so what? Modern editors (like XCode) code complete a lot of that typing for you. And in any programming, the actual coding is small compared to thinking about approaches to a problem - so in the end it's not that much different time-wise to actually produce working code.

    On top of that though, I think there's an overall savings in time with really well thought out foundation libraries and language abilities that lead to faster coding over many other languages.

    I've used a number of other languages really heavily, from Java to C++ to Scheme - and I think Objective-C in the end, is a really good language combined with very good tools from Apple.

    I've never really seen the point in pining for other languages that do not philosophically match the platform you are targeting. When I was doing some Windows development I used C++ and the MFC. And though I could use other languages targeting the Mac or iPhone, I never much saw the point in doing so when learning the languages the core foundation libraries were written for gives you an insight into how they are likely built and meant to be used.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:Because it buys you speed in development by Anonymous Coward · · Score: 0

      I've used a number of other languages really heavily, from Java to C++ to Scheme - and I think Objective-C in the end, is a really good language combined with very good tools from Apple.

      Well, yeah, compared to Java, C++, and Scheme, Objective-C is great.

      And hands down Interface Builder is the most usable GUI development tool I have ever used

      Then you probably haven't used much, since IB is really tedious and cumbersome.

      I've never really seen the point in pining for other languages that do not philosophically match the platform you are targeting.

      Which is why I try to avoid programming for OS X; Apple is trying to shove outdated and tedious technologies like Objective-C, XCode, and IB down my throat and I really just don't want them.

    2. Re:Because it buys you speed in development by Anonymous Coward · · Score: 0

      And hands down Interface Builder is the most usable GUI development tool I have ever used, which stems directly from how Objective-C interacts with objects. In every other language I ended up abandoning GUI design tools to code UI by hand, but IB is a major partner in every iPhone/Mac UI I write.

      Do yourself a favor. Never ever use Visual Studio. You'll realize how awful IB is and won't want to go back. Ignorance is bliss. Just a brief example: Add an "onclick" event to a button that already exists on a nib, and then do the same thin on a form in VS.

      The IB way...:

      1. Manually write your @interface in the .h file
      2. Manually write your @property in the .h file
      3. Save the .h file*
      4. Manually write your -(void) in the .m file
      5. Save the .m file*
      6. Drag a connection from the outlet to your button in IB.

      * - Mentioning saving the files may seem chickenshit, but since you have to manually code the outlets prior to accessing them in IB you do have to save the files before the outlet shows up in IB.

      The VS way...:

      1. Double-click the button in the visual designer.

      Seriously, what is the point of having IB if you still have to manually code all the function definitions in triplicate before using a very slow (though visually nifty) method of adding the outlet to the control?

  54. Re:Tiobe also explains how it determines it rankin by Lars+T. · · Score: 1

    Hey, there are a lot of people who prefer VB. Matter of fact, I'm not one.

    I didn't know you needed Flash to operate VB...

    --

    Lars T.

    To the guy who modded me down from perfect to terrible Karma - Apple haters still suck

  55. Re:Tiobe also explains how it determines it rankin by Capsaicin · · Score: 1

    From this I conclude that the results are meaningless.

    Not so, they reflect real changes in the programming world. For instance a dramatic improvement in language documentation will result in a language's Tiobe ranking falling. :)

    --
    Better to be despised for too anxious apprehensions, than ruined by too confident a security. --Edmund Burke
  56. Interesting. by tepples · · Score: 1

    I can go into more details [about templates for portability between standard C++ and C++/CLI] if the above isn't quite clear.

    I sort of understand now, but have you written an article about this? If so, I'd like to link to it from my essay about XNA. If not, I can give you an account on my wiki where you can work on such an article.

  57. Re:Tiobe also explains how it determines it rankin by Anonymous Coward · · Score: 0

    printf([[[[[[[[the comment] agree] moderate:[increase addingToValue]] retain] release] retain] stringByAddingString:@"\n"] copy] UTF8String])

    actually I love objective C, I just hate counting brackets.

  58. Re:Tiobe also explains how it determines it rankin by pookemon · · Score: 2, Insightful

    yeah - I'm betting that 90% of the Java questions are "Why the f*** is this happening?" and "Are the java team on drugs?" or "I'm using Netbeans for my java development and it just f***ed everything - are the Netbeans developers on the same drugs as the java devs?"

    Hardly a measure of it's popularity.

    --
    dnuof eruc rof aixelsid
  59. Re:Tiobe also explains how it determines it rankin by slater86 · · Score: 1

    They probably just use google fight to determine the results
    http://www.googlefight.com/

    --
    When people ask if I'm an optimist, I say "I hope so". --Bill Bailey
  60. Because it is not OO by TheNetAvenger · · Score: 1

    Even though people like to tout Objective-C as Object Oriented, technically it is only Object Based just like C++.

    If you want a real OO language you have to look to C# or many other more mature languages that understand the difference between the two.

    It may seem simple, but there is a big difference between Object Based and true Object Oriented.

    Side Note:

    Sadly this is something I have come across a lot in the past few years, and wonder if it is the OSS movement or just the lack of general education that teaches true Object Oriented thinking and programming.

    Even C++ and what Object Based abilities it offers are so often lost when a C programmer just mangles together code from a C perspective that only has the appearance of having any object based design.

    The OS and software development architectures of Linux and BSD are not object based let alone object oriented frameworks and even the upper layer library sets reflect this non-object thinking. This also occurs in the Win32/Windows world, which is sad considering NT is an object based OS model and by nature the API sets are conducive to thinking in object principles.

  61. Ooooh, this means GNOME will start using Obj C by Anonymous Coward · · Score: 0

    The following conditions have to been met for a programming language to be used in a official GNOME application:

    1. The Language has to be "standardised" by a monoplist and enforced on their platform
    2. The Language has to be in the top ten of the TIOBE Programming Community Index

    I actually like Objective C (and hate coding/reading C++, C# or Python), so this is good new for me.

  62. Speakng as an iPhone/Mac developer by realinvalidname · · Score: 1

    I'm more intrigued by the apparent ascendance of Go, which is not tied into popular frameworks (say, the way that Obj-C has Cocoa and Cocoa Touch, and C has, um, everything), and is presumably succeeding on its own terms as a language. The fact that it has Google behind it probably doesn't hurt either.

    Who knows, it might turn out to be a great successor to Obj-C/C for iPhone developme... oh, wait... section 3.3.1 and the goddamn Apple-Google pissing match. Never mind.

    Crediting Clojure's growth to LISP seems a stretch, but I'm not going to complain too loudly, because I still love LISP.

  63. Silver lining by Anonymous Coward · · Score: 0

    When I read that Obj-C has gained popularity, I was like NO!
    Then I read that C has replaced java at the #1 spot, and I was like YES!

  64. Re:Tiobe also explains how it determines it rankin by dintech · · Score: 1

    Imagine a programmer's version of The Simple Life where Linus Torvalds visits a small town in Alabama where he develops the software for a tour company in VB. "Ewwww" and "That is so hot".

  65. Re:Tiobe also explains how it determines it rankin by GigaplexNZ · · Score: 1

    So when did 'more discussions about something' not equate to 'more popular'?

    When the discussion generally has more bad stuff to say than good.

  66. So write your code in C or C++ by Anonymous Coward · · Score: 0

    and compile it using the Objective C compiler.

    Use as little or as much as Objective C syntax as you want.

  67. JavaScript drop by JThaddeus · · Score: 1

    Given all the hype about AJAX and Web 2.0, I'm surprised by the drop in JavaScript.

    --
    "Love is a familiar; Love is a devil: there is no evil angel but Love." --William Shakespeare ('Love's Labors Lost')
  68. No arrays, no references by tepples · · Score: 1

    unless you compile it with the unsafe options and use the unsafe features, the C++/CLI language is verifiable.

    Safe C++/CLI uses different syntax for arrays and pointers from standard C++, and Xcode would just throw a syntax error when trying to compile it. The common subset of standard C++ and safe C++/CLI lacks any sort of array or reference, making it not very useful without the sort of template-wrapped pointers that shutdown -p now described in a reply to the comment to which I linked.

  69. Re:Tiobe also explains how it determines it rankin by mdwh2 · · Score: 2, Insightful

    I also wonder why the story is all about Objective C (complete with the obligatory Iphone and Ipad Slashvertisement), when obviously there are 9 other languages in the top 10. Do they all get a story too? Seems like Slashdot is becoming more and more like an Apple news site...

  70. Awesome! Lego Mindstorms' robot's associated programming language made the top 50!

    It's a drag-and-drop, literally object-oriented visual programming "language" built on top of LabView.

    Of course, real robotics programmers* use the C-style languages that compile to the Mindstorm brick's processor.

    * This is called lobbing a softball.

    --
    (-1: Post disagrees with my already-settled worldview) is not a valid mod option.
  71. Re:Tiobe also explains how it determines it rankin by tomhuxley · · Score: 1

    It would probably be because most of the other Top 10 languages have been at (or near) the Top 10 for years, while Objective C has jumped up from #39 a year ago.

    Here you can see the change in Tiobe's ratings for Objective C over time:
    http://www.tiobe.com/index.php/paperinfo/tpci/Objective-C.html

    Compared to other languages like Java:
    http://www.tiobe.com/index.php/paperinfo/tpci/Java.html

    Perl:
    http://www.tiobe.com/index.php/paperinfo/tpci/Perl.html

    or PHP:

    http://www.tiobe.com/index.php/paperinfo/tpci/PHP.html

    That is a significant change.

    Now Tiobe's methodology may be crap overall, but it is measuring a big sea-change ... not a change you'll probably like, but eventually you'll realize that the world rarely goes out of its way to please you.

  72. Re:Tiobe also explains how it determines it rankin by CarpetShark · · Score: 1

    Exactly. Either way, ObjC's popularity is likely to be based on Apple platforms encouraging it. So that's platform popularity, not language popularity.

  73. ... And I have a bridge to sell you by Anonymous Coward · · Score: 0

    This thing is silly. It's obvious a bunch of MIT fanboys figured out how to game the list and move god-awful Lisp/Scheme up in the list. Same goes for "Go" (Google employees with nothing better to do).

    What languages are used most often to build Enterprise applications (the bulk of development work in the world)? Java/J2EE and C#/ASPX/.NET. PHP might be in there as well, but using it to build EA's is a bit of a stretch.

  74. oh yay by Anonymous Coward · · Score: 0

    Freaking BS why can't Apply adopt a real language. I am sick of 100s of useless languages becoming popular become some executive or company says it should.
    Google Go is pathetic, yet because it is google some freaks will try and popularize it. I am amazed that apple has anyone with a logical brain behind them, they are all about artistic facades, thus when everyone else went to C++ they couldn't stand it and made their own language. It is VB all over again.

  75. Re:Tiobe also explains how it determines it rankin by gbjbaanb · · Score: 1

    popularity never had anything to do with quality. Look at what's top of the 'popular' music charts at the moment for an example.

  76. Re:Tiobe also explains how it determines it rankin by GigaplexNZ · · Score: 1

    Popularity does generally relate to quality, or at least a perceived quality. There are a lot of plebs that actually like what's on the 'popular' music charts. After a quick google, the most common definition of popular goes along the lines of liked or admired by many or by a particular group. One could argue that the topic of Objective-C is popular, but that the language itself is not.

  77. Re:Tiobe also explains how it determines it rankin by Anonymous Coward · · Score: 0

    +"[language] programming"

    Shouldn't they also use "-sucks"?

  78. Isn't MonoTouch b& yet? by tepples · · Score: 1

    But monotouch compiles C# via obj-c to native iphone

    Until Apple bans MonoTouch in the iPhone Developer Agreement.

  79. I failed at searching IKVM's wiki by tepples · · Score: 1

    Searching IKVM's wiki returned 0 results about type-safe, memory-safe, silverlight, or compact (as in .NET Compact Framework which Silverlight and XNA use). Can IKVM be used to write a Silverlight app in Java, or is it designed only for making apps that run on .NET Framework on a PC?

    1. Re:I failed at searching IKVM's wiki by shutdown+-p+now · · Score: 1

      I've no idea if it was ever tested on .NET CE, but it is memory-safe. Indeed, the way it works is by translating JVM bytecode to IL, and the mapping is fairly straightforward for the most part. After all, Java doesn't have pointers.

      The catch is that the runtime library - all the J2SE classes, which in this case comes from OpenJDK with patches - requires full trust. So you can use Java-the-language, not Java-the-library.

    2. Re:I failed at searching IKVM's wiki by shutdown+-p+now · · Score: 1

      By the way, I seem to be unable to contact you privately, neither directly by email in your /. account, nor via a contact form on your website. Can you email me (email listed on /. is valid), so that we can continue that discussion on "portable" C++/CLI subset hack?