Slashdot Mirror


Programming Language for Corporate UI Research?

Daniel Wigdor asks: "I'm a PhD candidate doing an internship at a major American UI research lab. They distribute an input/output hardware device to research labs, along with a Java API for the development of 'concept pieces' (here's an example from a university). Java was chosen because it was simple, and seemed, at the time, to be the language of choice for UI researchers in both the corporate and academic worlds. There is now pressure to switch from Java to C#, since they don't have the resources to maintain an SDK for both. We're not at all concerned with system performance, since this is only for concept-development: it's really just about accessibility for newcomers to the hardware. Given that, what would the community advise by way of a choice between Java and C#?"

7 of 115 comments (clear)

  1. Considered Python? by MBCook · · Score: 4, Insightful
    Why not set it up in Python? Python can be called from just about any language, and can call just about any language. There are Python bindings for Objective-C, the Win32 API, QT, and just about everything else.

    I realize that this probably isn't the kind of thing you were expecting (I'm guessing you expected to get answers like "C++"), but I think it's a good idea.

    But of the two languages that you have now, I would stick with Java simply because it is completely cross platform (plus just about everyone getting out of school now knows Java because it was so popular/"language of the future", where as many don't know (or have only had an introduction to instead of a large amount of work with) C#.

    But the great thing about Python is you could use it as an itermediary between toolkits and such. Without changing your API, you could replace the Python code so that it used Win32 instead of Swing or QT without making your users learn something new. You want to change the back end from C++ to C or to something else, the interface and the way they call things stays EXACTLY the same.

    Just a though, from a guy who has recently discovered and fell in love with Python. And things will only get better with Python 3.0!

    --
    Comment forecast: Bits of genius surrounded by a sea of mediocrity.
    1. Re:Considered Python? by MBCook · · Score: 4, Informative
      OK, I just watched your video, and I obviously missed the point (to a large degree).

      First I'd like to say, VERY cool concept. Like sometihng out of a movie. That is awesome and looks like it would be so much fun to work on/play with.

      OK, back to the topic. I still think that Python would be a good language. It has the usual features (object oriented, etc), it can be modified at runtime easily (loading/replacing code, a cool side effect of an interpreted language), and there are TONS of standard libraries (not unlike Java, only more) that would give you interfaces to the toolkit you use to draw (OpenGL perhaps?), and other things. Give it a look.

      But awesome application. Now if you could just combine that with a 3D display it would be amazing. And think of the games you could play on something like that (something akin to Qix using your finger perhaps?) Or the "coffee break" game from Mario Paint, or xbill, the list goes on!

      --
      Comment forecast: Bits of genius surrounded by a sea of mediocrity.
  2. You're asking *Slashdot*? by Short+Circuit · · Score: 5, Insightful

    You're asking Slashdot, where anti-MS sentiment is a given? Good luck getting anyone to recommend C#.

    Actually, if C# was supported under other platforms as well as it is under Windows, then I'd say, go forit.

    However, since C# (and .NET, in general) on Mac and Linux is likely to play continual catch-up a la WINE, I'd say stick with Java. It has much wider support in terms of development environments, giving researches flexibility in their choice and tools.

    When in doubt, go where there's more flexibility.

  3. nasm by BladeMelbourne · · Score: 4, Funny

    I put my vote on assembly. Sort the men from the boys.

    C# is powerful in the right hands, but you loose platform independence. (Mono isn't there yet IMHO)

  4. Comparing pluspoints by Carl+Rosenberger · · Score: 5, Insightful

    Pluspoints for Java
    --------------------
    + more OS Platforms that you can run on
    + Eclipse as a terrific free IDE
    + huge number of free open source libraries
    + further away from MS (O.K. there is Mono too, but you only have one single second vendor that you can rely on)

    Pluspoints for C#
    -------------------
    + one single choice for UI development
    + more language features (this may be a minuspoint for corporate development, when you only want one way to write things)
    + one language standard, less dialects
    + believe it or not, it's an open standard and (on paper) less proprietary than Java, which is owned by Sun
    + easy GUI development for WinCE or windows mobile, including many mobile phones
    + possible easy interaction with other .NET languages
    + easy direct interaction with Windows OS features

    Now what do you prefer?

    1. Re:Comparing pluspoints by mpmansell · · Score: 4, Insightful

      You're making a very big assumption that Microsoft will be the only platform that will be required.

      If you take that away then a number of you C# pluspoints become irrelevant.

      While I agree with you about C# being more open than Java (and I prefer it as a language) most people are thick and don't differentiate languages from associated APIs nowadays. With that thought in mind, how many people really mean "C# and .Net" when they say C#? While you may argue that this is similar to "Java" meaning "Java + Foundation Classes/Swing", the difference is that the Java APIs are cross platform while .Net is, in reality (despite mono) really only a Windows platform.

  5. Don't change by darnok · · Score: 4, Insightful

    My advice is to stick with what you've got now. That advice would also apply if you were using C# and wondering about switching to Java.

    Honestly, the two languages are close enough in terms of capability that it really boils down to the cost and effort involved in switching.

    Cost to remain with Java: $0

    Cost to switch to C#: (by the time you've recoded all your "trivial" common routines you've created to work within your particular environment, built .NET equivalents to your scriptable Ant software build scripts, retrained people and maybe pissed off a few in the process, etc.) a lot more than $0

    Speak to people who've worked a lot with both languages. Get them to rank both languages out of 10 in terms that are relevant to you. Average the scores across a bunch of people. If C# averages >1.5 more than Java, then consider switching