Follow Slashdot blog updates by subscribing to our blog RSS feed

 



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:
  • by Anonymous Coward on Saturday April 16, 2005 @07:31PM (#12257983)
    Exactly, you're responsibility is for the program to work in general. Not what hacks you have to do to get it running on mono.
  • by SunFan ( 845761 ) on Saturday April 16, 2005 @07:37PM (#12258003)
    While I agree with you about C# being more open than Java...

    Score: +5 wishful thinking. How can a single-platform platform be more open than Java?
    C#'s standardization is simply a marketing trick by Microsoft to lead people into .NET. It is really meaningless in the big picture, especailly compared to Sun's JCP, which has hundreds of members from many varied backgrounds (incl. Apache and JBoss).
  • by Carl Rosenberger ( 449479 ) on Saturday April 16, 2005 @07:58PM (#12258108) Homepage
    Maybe my posting looks biased when you compare the number of pluspoints.
    They are random, I just listed what came to mind.

    My personal opinion is very strong towards Java.
    Cross-platform outweighs everything else by far.

    I wouldn't exchange Eclipse against VS.NET 2003 for one day, it feels like your left hand is cut off.

    VS.NET 2005 will catch up on refactorings but the Eclipse platform is gaining a competitive advantage which can't be beaten by MS: It is becoming a crystallisation point for all kinds of open source plugin tools like database browsers (our own brandnew Eclipse plugin will go online on Monday), JSP editors, language converters, you name it, it's there.

    One very important pluspoint for Java which I forgot to mention:
    You get all the sources.
    You can debug into them and see how Sun's professionals (try to) solve things. Yeah, sometimes (Swing) you can also see that Java does let you write awkward code also.
  • by Carl Rosenberger ( 449479 ) on Saturday April 16, 2005 @08:27PM (#12258272) Homepage
    Are you referring to WinForms?

    Yes, I trust the Mono guys to catch up very nicely.

    How many "dialects" are there of Java?
    • JDK 1.1 is still heavily in use as "PersonalJava", on quite a few limited platforms which are nonetheless important, like Symbian.
    • Some of the more important J2ME dialects:
      • CLDC
      • CDC
      • MIDP
      • PersonalProfile
    • Not all companies can or may upgrade to the latest Java VM. Some developers have to restrict themselves to one of the following. Bytecode produced with newer compilers is not backward compatible.
      • JDK 1.1.8
      • JDK 1.2.x
      • JDK 1.3.x
      • JDK 1.4.x
    • Finally there is the glorious current JDK 5.
    I call that dialects. It's quite a mess if you want to develop GUI that has to run on a handheld and on a desktop.
    Talking of GUI dialects. There is:
    • AWT
    • SWT
    • Swing
    ...just to name the major "corporate" ones. There are tons more by small to mid-size shops.

    C# only has two major dialects:
    • normal C#
    • C# for the CompactFramework (handhelds)
    The strength of Microsoft will prevent the entry of third parties. Many people will not like that at all, but there is one advantage, if you want to build professional software:
    You can take a decision to start today, there is a clear one-and-only choice, with little risk of discontinuation.

    You can't have it both ways; it's either standardised, or it includes GUI stuff.

    I think Java and SWT is a good choice.
  • Squeak (Score:3, Interesting)

    by jefu ( 53450 ) on Saturday April 16, 2005 @09:03PM (#12258462) Homepage Journal
    If you're looking to decide if a one pixel wide red line around a menu entry works better than a one pixel wide green line, it won't much matter if you use Java or C#.

    If you'd like to develop new ideas in UI's and really experiment with different ways to handle them, probably neither Java nor C# will really help much.

    But squeak [squeak.org] (a smalltalk implementation) might. You should at least give it a serious look. Of course there are other possibilities (self, raw X windows...) but squeak looks like a good one to me.

  • by DarkDust ( 239124 ) * <marc@darkdust.net> on Saturday April 16, 2005 @10:47PM (#12259014) Homepage

    I've you're used to Java's SWING layouting, you'll find C#/.NET ridiculous and primitive.

    In .NET, you only have one, fixed layouting mechanism which uses either "Dock" or "Anchor" (read specifics in MSDN's Control class documentation [microsoft.com], specifically the "Anchor" and "Dock" properties).

    If you're doing UI prototypes I really think that this is a severe limitation.

    Other arguments against C#:

    • Java is a mature plattform, C#/.NET is quite new compared to Java
    • There are more people that know how to code in Java than people that know how to code in C# (it's not hard switching from one to other language-wise, but it's a hell of a lot different framework-wise)
    • While implementations of .NET exist for other plattforms (GNU Portable .NET/dotGNU and Mono) they are not completely compatible yet, especially not in the GUI side (I know that since I've fixed a lot of System.Windows.Forms bugs in Portable .NET the last months as part of my work). Compare that to the known-to-be-good cross-plattform support of Java !
    • Ask why the people that want to use C# think that C# is better suited for the job than Java. I'm pretty sure those people just recommend because it's currently the Programming-Language-Of-The-Month and buzzword-compliant. IMHO most technical reasons really speak against C# (except for properties and foreach, which just are nice syntactic sugar but really aren't worth the huge work of switching).
    • Ask what benefits those people expect to gain. Switching your existing stuff will cost a lot of money: it'll cost time for people to learn C# and especially the .NET framework, you'll surely have to use different tools which you'll have to deal with and especially learn their flaws and work around them.
    • Most people will like to use C# with MicroSoft's Visual Studio .NET because they know it and think it's good. Be warned that this is a nice IDE but is really bad at maintaining big projects. Especially big projects with subprojects. VS.NET often makes simple tasks that the developers of VS.NET didn't anticipate extremely hard or even impossible (for example, if you have several subprojects which depend on each other you can't have them compile into one directory: VS.NET will hold some files open and then complain that it can't open those files because "another" application has this file already open; MS knows this problem but simply says "don't compile into one directory", which will force you to do "unnatural" workarounds). I think VS.NET is a nice IDE for beginners and intermediates, but it way too limited and flawed for big projects.
  • Slightly anoying are the answers I saw where the amount of available bindings for Python are enumerated and QT or OpenGL come to speak.

    Probably the authors of such posts should at least have watched the video?

    Back to topic:

    I suggeest to stick with Java for several reason:
    a) why dropping a succesfull existing system because of language?
    b) why forcing all people allready working with it to learn a new language/environment (libraries and such)
    c) you likely get FAR MORE developers (researchers) for Java based software than for e.g. Python
    There are people like me who simple never would touch Python.

    Why the crowd may ask? I simply can't cope with the syntax. I hate it, I have an awersion against it. I can't stand it that as soon as you try to some meta level stuff everything is done with full capitalized variables starting with __. I cant understand why you have to declare the "this" pointer in each method, called self -- by convention, instead of simply "having one" like in C++/Java. Its a dynamic typed language, I simply can't work with something like that. Thats just me, but there ARE programmers LIKE me, who simply hate languags liky Python and e.g. TCL.

    d) Java has enough bindings to scripting languages like Groovy, TCL, Python(Jython), Ruby(JRuby) and a lot of others. It is far better to keep your "kernel" in Java and let the users descide if and how they put additional services or "experimental software" on top of it. So all the guys yelling Python is so much better can use it without blocking me from using Java :D

    Switching to C# gives no new options, but just different ones and IMHO far less mature ones.

    Lets look at platforms, in case you want to use a scripting language with such a binding to access your software written in C#: Installing software on a machine allready having Java is merly a download/copy process. C# based software (or GTK/Qt) OTOH needs on Windows likely to be "installed" and the user needs admin rights. For a geek it is easy to install Qt or GTK on HIS OWN windows machine as well as on any other machine/OS he has the rights to. But a PC pool in a university likely has more rigid management.

    However for a cross university developemnt process, its better to stick with something simple, where not every PC, Linux or BSD or Windows, needs to have additionaly software: Mono, .NET, GTK bindings, QT, QT bindings plus the desired scripting language. Whats with mono for the Mac BTW? All the nice Scripting languages for the Java Virtual Machine run on my Mac as well.

    e) Releasing your software (even internal) under different languages will undoubtable lead to an enourmous increase in support questions.

    Why does my Python call give that silly error message? Because the user gave a wrong argument (type) ....

    The more complex your system becomes, like a lot here on /. suggested in switching to a "better" language and have endless bindings, the more work you will spend in configuring those systems instead on improving them.

    angel'o'sphere
  • by Anonymous Coward on Monday April 18, 2005 @11:05AM (#12269537)
    Java is proprietary.
    I love these people who claim that Java is more proprietary than C# because Microsoft took a small section of C# and submitted it to EMCA as a publicity stunt. Not to mention that the rest is a Microsoft trade secret and the part they submitted to EMCA is still covered a large bank of Microsoft patents, nearly all of which Mono violates. If Mono was any threat to Microsoft at all, they'd be able to shut it down in a day.
    If an Arabian oil company would buy Sun tomorrow and decide to charge USD 100 per Java runtime, they could.
    Yeah, and retract Blackdown's license? You have evidence that Sun's license is revokable? Or that Sun's moving to more restrictive license instead of (in fact) less restrictive ones? If not, retract this silly statement, Mr. FUD.

    Ironically, Sun's license exists for one and only one reason: to keep Microsoft from taking it over. What we're seeing with C#'s lock-in nature is exactly what Sun didn't want to happen to the community. Yet you somehow see C# as a good thing.

    Mono is reality and it's doing quite well.
    Mono supports a tiny subset of C#'s libraries. As far as I'm concerned, mono has no shot at catching up with Microsoft here.
  • Re:Stick with Java (Score:2, Interesting)

    by brpr ( 826904 ) on Monday April 18, 2005 @05:32PM (#12274530)
    Mono seems to be pretty good in my limited experience of it. Unless you need the Windows forms API, of course. Ironically, Mono works better for me on Linux than Java (just try getting a modern JDK for PPC Linux!).

The Tao doesn't take sides; it gives birth to both wins and losses. The Guru doesn't take sides; she welcomes both hackers and lusers.

Working...