Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
GUI Software Programming Technology

Programming Language for Corporate UI Research? 115

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#?"
This discussion has been archived. No new comments can be posted.

Programming Language for Corporate UI Research?

Comments Filter:
  • Stick with Java (Score:3, Insightful)

    by brpr ( 826904 ) on Saturday April 16, 2005 @06:30PM (#12257678)

    Carry on using Java if you can, and switch if you have to. No point in changing language if you can avoid it (especially given how similar Java and C# are).

  • Considered Python? (Score:5, Insightful)

    by MBCook ( 132727 ) <foobarsoft@foobarsoft.com> on Saturday April 16, 2005 @06:40PM (#12257727) Homepage
    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!

  • or Visual Basic (Score:3, Insightful)

    by YetAnotherAnonymousC ( 594097 ) on Saturday April 16, 2005 @06:42PM (#12257735)
    Or Visual Basic. Seriously. If I'm reading the question right, the SDK is going to be .NET IL (written from C#), and you don't care about performance of the UI above that - you just want to experiment with different interfaces with little learning curve for new researchers. Sounds like VB.NET would work fine.
  • by Short Circuit ( 52384 ) * <mikemol@gmail.com> on Saturday April 16, 2005 @06:56PM (#12257807) Homepage Journal
    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.
  • by Carl Rosenberger ( 449479 ) on Saturday April 16, 2005 @07:00PM (#12257826) Homepage
    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?
  • Go with Java (Score:4, Insightful)

    by mpmansell ( 118934 ) on Saturday April 16, 2005 @07:02PM (#12257832)
    Personally, i think that there is much to commend C# as a language, but I think you'll find that those pushing for C# are really pushing the .Net framework rather than the language. While I think it is one of the best things that Microsoft have come up with, it is not portable and unless you wish to have code that runs purely on Windows, Java is the way to go.

    The advantage of Java is that it has a standard API that is tailored to multiple platforms.
  • by mpmansell ( 118934 ) on Saturday April 16, 2005 @07:17PM (#12257920)
    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.
  • Implementation? (Score:2, Insightful)

    by Tamerlan ( 817217 ) on Saturday April 16, 2005 @07:24PM (#12257957) Homepage
    You said about Java API? What is the language the implementation itself is written in? From my experience it is importnat to have API in the sam language as implementation first and then have APIs. You also did not describe motives behind the pressure. What are they? Technological, financial, Microsot grants ... what? That would help in answering your question. Changing anything will cost your employer money. Did they count how much reqrite will take in terms of time and money. If you have to support several APIs, I'd say write IDL and generate interfaces for as many languags as you want. Unfortunately this is not as easy as it supposed to be.
  • by Jerf ( 17166 ) on Saturday April 16, 2005 @11:05PM (#12259116) Journal
    You might be able to split the difference by using Jython.

    Not personally convinced that Java is where it's at where UI research is concerned, but I'll confess freely to not having RTFA.
  • Do what skype did (Score:3, Insightful)

    by Tobias Luetke ( 707936 ) on Sunday April 17, 2005 @01:12AM (#12259685)
    Do what skype did. Implement the essence of your application in whatever you see fit. They used c because they needed performance. Then they go round and use the best GUI toolkit on every platform. Objective-C + Cocoa on the mac. Delphi / VCL on windows, QT on linux (ok arguable choice). The clients are very pretty and excellently integrated on all the platforms, for example the mac version uses a drawer like interface for current calls and uses a little translucent notification window on incoming calls with buttons for answer and hangup.

    That being said, wxWidgets works on most platforms and you can program it well from many languages like ruby, python, all the c's, c# and so on.
  • Don't change (Score:5, Insightful)

    by darnok ( 650458 ) on Sunday April 17, 2005 @04:17AM (#12260336)
    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
  • by mpmansell ( 118934 ) on Sunday April 17, 2005 @06:40AM (#12260778)
    " You should just never ignore the other side, there may be a lot to learn"

    Well put!

    Its a shame that these discussions get domminated by narrow viewed people with hobby-horses to promote :(

    Personally I prefer the .Net platform to the Java platform, but I think that that is because of the kitchen sink mentality of the JCPs. As you mentioned, they are not always efficient.

    In practice, however, I'll usually use the Java platform, despite my misgivings about it, since it allows me to use it on other operating systems that may be better suited to the job at hand.

    One thing that people often forget when talking about portability is skills portability. A language that can be used on multiple platforms is a more valuable skill to the individual; it gives them more work opportunities :)
  • Stick with Java (Score:3, Insightful)

    by turgid ( 580780 ) on Sunday April 17, 2005 @08:48AM (#12261135) Journal
    Stick with Java unless you wish to confine yourself only to the Windows platform. Yes, Mono aims to be a Free implementation in Linux but it's still in development.

    If you stick with Java, you can use Java language compilers from many different vendors, including gcc, and your code will be portable between many different Operating Systems.

    Java is more stable and mature, has a huge developer community and is supported by enormous, comprehensive class libraries.

  • by mrsbrisby ( 60242 ) on Sunday April 17, 2005 @10:49AM (#12261722) Homepage
    UI Research is a pain in the ass in Java or C#. It's a pain in the ass in any language that makes you work to reinvent.

    I perform UI experiments largely with pygame, or perl-SDL. It gives me a chance to rapidly try out USER interface changes as I don't have to worry about whether or not delegation is "easy enough" to facilitate the change.

    With Java and C# (or C++ for that matter) you've got an awful lot of work building classes and inheritance and if experimentation demonstrates a particular (unexpected!) trend, you've got an awful lot of work ahead of you to refactor and rework existing paths to make the new paths possible.
  • by Mike Greaves ( 1236 ) on Sunday April 17, 2005 @11:18AM (#12261895) Homepage
    'consider that Microsoft has not given Mono a legal blessing'

    IANAL, and I have myself had reservations about this point...

    However, it seems quite unlikely that MS would succeed in choking off core (C# + CLR) Mono development - for a lot of little reasons:

    1. Novell appears to be Mono's primary backer and they appear to have real patent leverage w.r.t. MS.

    2. Probably not many of the patents covering the core can hold water due to prior art. I think it's been suggested that MS + Sun together could launch a more effective patent attack. How likely is that? (things like WinForms, ASP, ADO would seem to be in greater danger)

    3. Mono could still ship with the odd feature stripped or workaround mechanism in place.

    4. MS can not simply beat up on who it feels like nowadays; not with the EU and others breathing down it's neck.

    As an aside, can anyone think of a *language* implementation that was killed by patent litigation?

    --
    Mike Greaves

"Experience has proved that some people indeed know everything." -- Russell Baker

Working...