General discussion

  • Creator
    Topic
  • #2195342

    fill in the blank -The best cross platform programming language is

    Locked

    by jaqui ·

    What language do you think is best for cross platform development?
    why?

All Comments

  • Author
    Replies
    • #3152307

      English!

      by Jay Garmon ·

      In reply to fill in the blank -The best cross platform programming language is

      Because us ignorant non-programmers speak it, and we’re the ones running the project anyway! 😉

      • #3152304

        so, to clarify….

        by jaqui ·

        In reply to English!

        you are saying that Beginners Allpurpose Symbolic Instruction Code is the best language. [ BASIC ]

        it is little more than english. :p

        • #3154536

          heathen

          by apotheon ·

          In reply to so, to clarify….

          BASIC is nowhere near as useful a language as English.

        • #3152946

          BASIC isn’t English,

          by charliespencer ·

          In reply to so, to clarify….

          COBOL is 🙂

          English is pretty lousy across platforms. Try to port it to an Asian system. You’ll have to completely recompile…

        • #3152679

          not exactly

          by apotheon ·

          In reply to BASIC isn’t English,

          COBOL is legalese.
          “The party of the first part shall not, in concert with and by contract with, the party of the fourth parth, engage, without the party of the second part, services provided therewith to the party of the third part, inasmuch as . . .”

          BASIC is baby-talk.
          “Would-ums wike a lollipop? Would-ums wike a print statement?”

          VisualBasic is ebonics.
          I’ll let you imagine your own example of this one.

          (edit: typo)

        • #3156693

          More language metaphors

          by sterling “chip” camden ·

          In reply to not exactly

          Java is geek-speak

          C# is the geek promoted to management

          Ruby is a Zen koan

    • #3152301

      C++

      by jaqui ·

      In reply to fill in the blank -The best cross platform programming language is

      Because, when done right, it has significant performance benefits and is one of the more powerfull languages available. C++ can be used to control the hardware, unlike most other languages.

      While this means that C++ can damage the system, it also means that it has capabilities that other languages lack.

      • #3154665

        Java, hands down

        by csotelo ·

        In reply to C++

        If you are doing driver/kernel development, by all means do it in C, or C++ if you must, but if you are really interested in portability – that is you want a “line of business” application that must run now, in the foreseeable future, and on “n” diferent platforms, – Java wins hands down. Plus it is not that hard to find qualified programmers.

        • #3154662

          Java +

          by csotelo ·

          In reply to Java, hands down

          In addition, the idea of Java “non-virtual” machines (see Azul line, or possible developments in the T Series of SunFire Servers) makes it easier than ever to scale Java to handle XXL sized loads.

          P.S. and no, I’m not working for either Sun or Azul… 🙂

        • #3154637

          Java? really?

          by jaqui ·

          In reply to Java, hands down

          since when does incompatable jvm’s and conflicts between different java apps jvm requirements make it a reliable cross platform language?

          I actually refuse to install any jvm, or any application that requires java, since the conflicts in the runtime environments are prohibitive. one interpreter for every java application, I will concider it, until then, stick java where the sun don’t shine.

        • #3154573

          Bah.

          by justin james ·

          In reply to Java, hands down

          Calling Java “cross platform compatable” is a sad joke. Java isn’t even backwards compatable with itself half of the time. You can take Java code written for Sun’s JVM five years ago and it probably won’t work on the Sun JVM today. .Net has more backwards compatability, which is really sorry, when you think about it.

          J.Ja

        • #3154529

          VM languages

          by apotheon ·

          In reply to Java, hands down

          If you want a true cross-platform VM-based language, Java isn’t it. Try something with an open standard and open implementation like Smalltalk, instead.

        • #3153366

          Yes… Java

          by csotelo ·

          In reply to Java, hands down

          I looked at your answers, and even though I felt the temptation to shove some of them “where the sun don’t shine” on the authors, I feel I still have a point and that a “rational” response is better suited and will create more value than a heated personal defense.

          I’ve been using Java as a cross-platform development tool for line of business applications for quite a while now.

          Yes, I do realize that careful version control has to be kept, that JVM’s are not the same across all platforms and that for particular applications other languages are better suited (driver/kernel do use C, or windows in which .net is a no brainer).

          But careful programming will render an application that can easily be taken around most platforms without any changes whatsoever and current JVM’s do not suffer from most of the problems we had on the past.

          Older “standarized” languages (such as Cobol or Fortran or C) do have compilers that run on every platform, but here, as well, every compiler has its nuances and there’s no guarantee code compiled correctly on a given platform will compile unmodified in another platform unless you go to great lenghts to proofread your code and ensure this compatibility yourself, just like in Java.

          Plus, from the business standpoint it is much cheaper to get Java coders than C or even C++, unless you go to the visual crowd who can only program for windows – those do come real cheap – but then again that’s not a cross-platform way to build code, is it?

      • #3151824

        Agree 100% – C++ is best!

        by pennatomcat ·

        In reply to C++

        but don’t forget about C

      • #3156187

        C, C++, and Assembler

        by georgeou ·

        In reply to C++

        I completely agree with you Jacqui. C++ is probably the best. Java is a bloated piece of junk. .NET framework is bloated but it’s only half as bloated as Java and is ok for Windows development and the tools are extremely good. The run time of .NET code is no where near C++ but it’s much better than Java. .NET might be ok for cross platform too if you only use Mono compatible coding and stay away from the Windows specific calls.

      • #3156536

        C

        by x-marcap ·

        In reply to C++

        If you can’t rewind before the file to browse/fix the previous file the language has lost something…

        Pre Ansi-C K&R C is much more portable than C++.

        And if you are doing Gui, use Smalltalk.

        If Apotheon and I agree on it, you can probably cahs it at the bank…

      • #3156535

        C not C++

        by x-marcap ·

        In reply to C++

        If you can’t rewind before the file to browse/fix the previous file, the language has lost something… Today to fix this kind of issue you now need to write assmembly language or use a debugger…

        Pre Ansi-C, K&R C is much more portable than C++.

        And if you are doing Gui, use Smalltalk.

      • #3157763

        language less important than the runtime API

        by dryflies ·

        In reply to C++

        There is no single answer to the question.
        The language is irrelevant to the platform. The runtime API is what makes cross platform development possible. The language should be selected for the application not the platform. for example, I would not think of writing a web app in C. nor would I write a statistical analysis program in PHP. There will be no device drivers in basic – unless you are really looking for punishment. writing a compiler? try snobol. a filter? perl. dynamic web page? PHP. embedded control? C/C++

        • #3157248

          It’s not that simple.

          by apotheon ·

          In reply to language less important than the runtime API

          I’ve seen websites put together using C/C++ that really needed something like that (for instance, The Spark used to be designed in that manner, before it was bought). PHP might be the language of choice for “a dynamic web page” if you just want to whip up something vaguely functional in half an hour, but for serious dynamic web development I’d use something else — like Perl or Ruby. Many compilers are written in the language they compile, and with good reason. Perl’s compiler (yes, it’s compiled, not interpreted — but it’s JIT compiled) is written in C, though (and also with good reason).

          . . . but your main point is a good one. Too bad the runtime API for some languages sucks and that for others is great. Too bad libraries, runtimes, and linguistic quirks can conspire to ensure that some languages aren’t as portable as others. For instance, Java programming tends to rely heavily on platform-specific libraries for anything more significant than applets and prototypes, which the reverse is true for Perl: sysadmins tend to execute platform-specific utilities and commands from within administration scripts written in Perl, but for more substantial programming Perl is very platform-agnostic.

          There are social aspects to languages that can contribute to, or detract from, cross-platform compatibility as well as technical aspects to their implementations. Yeah, there’s lots of stuff that can affect real-world portability related to the language chosen. Would you use Visual Basic to write software for a Mac?

          In theory, you’re right. In practice, it’s not so simple.

    • #3154640

      Perl, without a doubt

      by justin james ·

      In reply to fill in the blank -The best cross platform programming language is

      C++ w/standard libs comes in a close second.

      I find it amazingly… odd? unusual? ironic? that Perl & C++ are much more cross platform than Java with its “write once run anywhere” promise. What a lie…

      J.Ja

      • #3154634

        ~chuckle~

        by jaqui ·

        In reply to Perl, without a doubt

        perl, php, python have it hands down over java, since any current interpreter for each will run all programs / scripts from all versions, unlike java that requires specific, conflicting, jvms.

        C and C++ are os agnostic, since they are the languages used to develop the os itself most often.

        C++, the stl and standard libs for the language is usefull cross platform, it’s the gui widgets that aren’t usually cross platform, specially the mfc, that is strictly microsoft systems. gtk/gdk is a better option for that, as it is available for all os options, as is QT and wxWidgets.

      • #3156427

        Yup

        by david_s ·

        In reply to Perl, without a doubt

        Perl is it.

    • #3154531

      There are several.

      by apotheon ·

      In reply to fill in the blank -The best cross platform programming language is

      Languages that immediately come to mind are C/C++, Perl, Lisp, Smalltalk, and OCaml.

      • #3155893

        . . . and Logo!

        by apotheon ·

        In reply to There are several.

        Specifically, UCBLogo: it’s available for a fair number of platforms, and doesn’t really do platform-specific stuff at all. Logo is a surprisingly excellent language, with the accessibility of BASIC but a lot of the power and flexibility of Lisp dialects like Scheme. Everybody seems to think it’s just a toy language for Turtle Graphics, but the truth is that it’s an amazingly nice language in its own right. There’s even a third-party .NET compiler for Logo.

        I’m planning to revisit Logo in the near future, in fact, and gain a little expertise in the language (using the UCBLogo implementation, of course). Have a look at the succinct power of Logo in a short sample program:

        http://www.cs.berkeley.edu/~bh/logo-sample.html

        As it says at the end, “Let’s see you do [i]that[/i] in four lines of Java!”

        • #3156419

          ???

          by wdewey ·

          In reply to . . . and Logo!

          I don’t see that being especially useful.

          Bill

        • #3156415

          The program or the language?

          by apotheon ·

          In reply to ???

          The program in and of itself isn’t a whole lot of useful all by itself, but it demonstrates how absurdly simple it is to write a procedure in Logo for iteratively self-generating lists. The principles demonstrated in that program can be used in menu generation from configuration files or option definitions, for anagram calculations, and for calculating factorials, among other programming tasks. Hell, this sort of technique could be used for brute-force password cracking.

          As for the language, I’d have to hear why you think it’s not “especially useful” before I knew how to respond. I don’t see any reason it wouldn’t be “especially useful”.

        • #3156406

          Oops

          by wdewey ·

          In reply to The program or the language?

          I got the program mixed up with the menu. Sorry.

          I don’t really understand this programming language, so why aren’t the ultra and chocolate considered two different entries?

          Bill

        • #3156372

          nested lists

          by apotheon ·

          In reply to Oops

          The [ultra chocolate] list doesn’t get all its members operated on individually because no operation (aka “operator function”) explicitly targets it. The list within which that shorter list resides is the target of the nearest operation, so that sublist is treated as an atomic member. Erm, I hope that makes sense.

          Are you at all familiar with functional programming language syntax? If not, that might help explain your confusion. I’ll direct you at some online books for learning Logo if you’re interested.

    • #3154504

      Perl and C

      by jmgarvin ·

      In reply to fill in the blank -The best cross platform programming language is

      I do like C++, but it isn’t as portable due to various wonky headers that Windows sometimes needs.

      With the mono project, I suppose I’ll also vote for .Net 😉

      Oh, Perl for its bitchen string parsing and cool built-ins. I’m all over that…

      • #3154460

        no kidding

        by apotheon ·

        In reply to Perl and C

        1. Windows sure does demand some wonkiness from C++.

        2. Disturbingly, the .NET framework (created by Microsoft, the king of noncompatibility) has been made widely compatible by Mono and other third-party implementations. This makes it ironically more portable than Java in many ways.

        3. You’re too right about Perl. She’s my baby, and I love her so.

    • #3153522

      Specialized languages – SQL and XSLT

      by ed woychowsky ·

      In reply to fill in the blank -The best cross platform programming language is

      In my opinion either SQL or XSLT. Think about it for a moment, SQL runs on anything with a relational database and XSLT on anything with an XSL parser.

      • #3153419

        What rocker did you just fall out of?

        by justin james ·

        In reply to Specialized languages – SQL and XSLT

        SQL is less cross platform than anything else I have ever touched! It is a major undertaking to switch from Oracle to MS SQL Server to MySQL to PostgreSQL to whatever! Even the data types and how they are handled is different. This is a major reason why stored procedures are so important, have your installer create the right set of stored procedures, instead of switching the statements within your code on a platform-by-platform basis.

        Even using the results of a SQL statement differ radically, depending on if they got filtered through ODBC, JDBC, a direct connection, etc.

        J.Ja

      • #3152677

        they don’t qualify

        by apotheon ·

        In reply to Specialized languages – SQL and XSLT

        I thought we were talking about “programming” languages.

        • #3153940

          Definition

          by ed woychowsky ·

          In reply to they don’t qualify

          According to Wikipedia there is no universally agreed definition for the term programming language. If in the 1970’s and 1980’s BASIC, C and COBOL could be used as to fulfill the foreign language requirement for a college, then why can?t SQL and XSLT be a programming language? As for being disqualified for different dialects, then I suggest that Java is also disqualified due to the existence of J++.

        • #3153701

          Dialects?

          by apotheon ·

          In reply to Definition

          Who ever said anything about disqualifying a dialect? Sure, if you’re counting languages, you could make a case for different dialects of the same general language being counted only once as a group, but you can’t just randomly decide that one dialect doesn’t get to be what it is any longer since there’s another significantly like it. That’s like saying a white woman isn’t a woman because black women exist.

          As for “programming language” definitions, I tend to figure that something that isn’t Turing complete doesn’t qualify. That rules out SQL. That’s not to say that it has to be a Turing machine, per se — just that it has to be capable of everything a Turing machine can do. SQL is more like a protocol than a programming language, in some ways.

          I was under the impression, based on my memory of pre-1.0 versions, that XSLT wasn’t Turing complete. It turns out that it is. That being the case, I’ll concede that part of your point.

          I still wouldn’t consider it anywhere near the category of “best cross-platform” programming languages, though.

        • #3153688

          SQL

          by onbliss ·

          In reply to Dialects?

          Yes it might not be the best cross-platform language . Different vendors have been customizing or adding too many features to the ANSI-SQL. PL/SQL, T-SQL are entirely different. But still SQL is very much a programming language.

        • #3151926

          the mating call of the database “programmer”

          by apotheon ·

          In reply to SQL

          SQL isn’t Turing complete. SQL doesn’t do anything but declarative data-shuffling. SQL might be called a scripting language on a good day. SQL is not a programming language.

        • #3144426

          SQL not programming

          by j.lupo ·

          In reply to the mating call of the database “programmer”

          SQL, as the name says, is a structured QUERY language it is not a programming language. It is very useful for what it does, but it does not have the complete breadth and depth of a programming language. That is why other versions have grown such as PL/SQL and T-SQL. It was an ATTEMPT (which I stress) to turn it into a programming language. I find it very useful myself for DB related stuff, but for outside the DB, I rather use Perl, C, C++, Java, etc.

    • #3153481

      C#

      by gdaley ·

      In reply to fill in the blank -The best cross platform programming language is

      With support on all the Microsoft platforms you’ll ever want to support, C# wins hands down.

      And, with Mono, you can even use it on non-Microsoft platforms too!

      • #3153390

        Too closely tied to Windows

        by justin james ·

        In reply to C#

        Unfortunately, too much of the .Net Framework is tied to the Windows API to make anything that is closely tied to .Net really cross-platform compatable. Yes, Mono can compile and run straight C# code, but is C# a good language without the .Net Framework? I really do not think so. The power of C# (and VB.Net) stems not from the strength of the language itself, but the comprehensive nature of the .Net Framework. C# by itself is not a language that I find particularly attractive.

        J.Ja

      • #3152674

        Uh . . .

        by apotheon ·

        In reply to C#

        “[i]With support on all the Microsoft platforms you’ll ever want to support[/i]”
        What the heck does that have to do with it? You have a funny definition of “portable” or “cross-platform”. Maybe you work for the Microsoft marketing division.

        Read J.Ja’s response to your post. He’s on the money.

        In fact, of the .NET languages available, I’d go with Python (since that’s now going to be included in the lineup of languages available for .NET) if I were to choose a .NET language. I don’t even like Python.

    • #3153434

      Loaded question, but my pick is…

      by joeaaa22 ·

      In reply to fill in the blank -The best cross platform programming language is

      COBOL.

      Yes, you heard me. COBOL!

      For developing applications that manage data there is still no better languges. Period. And it runs on every platform you could imagine that needs to do any kind of data manipulation.

      Now, for GUI or Web or Systems programming the answer would be much different, obviouslly. But the question was left so open ended that it’s really difficult to get any kind of real answer to it. Afterall, one of the most cross platform things you can do is to have –

      #! /bin/sh

      as the first line of your program.

      • #3153337

        qualifications

        by john.a.wills ·

        In reply to Loaded question, but my pick is…

        The Cobol implementation should have Report Writer. And, if the installation is IBM, the “system programmers” should be instructed to allow ISO instead of insisting, as IBM allows them, that apostrophes be used for quotation marks.

      • #3152947

        I find myself strangely tempted to agree…

        by justin james ·

        In reply to Loaded question, but my pick is…

        I learned COBOL sometime around 1993, on an aging NCR mainframe with green screens. I will say, despite the sheer amount of work to go into writing COBOL code, it was very solid, and I would imagine that its age (plus the lack of upheaval in the programming world then) gave it a chance for the various implementations to all reach the same level of compatability. This is how Perl (and C, and C++) was too. Years between releases, not this “new ‘innovation’ on a weekly basis” attitude, and so on led to an extremely stable set of implementations.

        In retrospect, what is really hurting cross platform with the modern languages is the rate of “progress” and “innovation.” Every one is looking for an edge and a differentiating factor so they can reap the financial rewards of selling the tools and software to create and run the code. As a result, everyone seems to be doing what Microsoft is hated for, “embrace and extend.” Look at the Java spplication server market. JBoss, Tomcat, WebSphere, all of these are completely incompatable. .Net is more or less useless outside of the Windows environment, SQL is heavily dependent upon which RDBMS (and version of which) you use, cross platform is really not a prime concern anymore, for whatever reason.

        J.Ja

    • #3153943

      Depends on the Application

      by steven.randolph ·

      In reply to fill in the blank -The best cross platform programming language is

      If the user is requesting a traditional, thick client sort of application, and it needed to run on OS/X, Windows, and Unix/Linux, I would choose C++ without hesitation. In that case I would utilize C++ with the free wxWidgets GUI tool kit. On the other hand, if the goal is to produce a thin client Web-based application, the situation is much less clear, but I would lean strongly towards Java. Actually, in that case, I would suggest investigating the Ajax concept, which is definitely an up-and-comer. Even Microsoft, which is hardly a strong proponent of cross platform development, is supporting the Ajax concept, through its experimental (at this time) “Atlas” project.

      • #3153932

        Yup, depends on the application

        by rlcf ·

        In reply to Depends on the Application

        I bet FORTH still runs on more different hardware platforms than any other language….

        • #3153697

          Hey, Jaqui! Give us some definitions!

          by apotheon ·

          In reply to Yup, depends on the application

          Your mention of FORTH brings up an important problem: we don’t know what was meant by “platform”, or by “cross-platform”.

          [b]platform[/b]: Are we talking Windows vs. OS/400 vs. NetBSD vs. MacOS 7 vs. CPM vs. Solaris vs. ULTRIX? Are we talking x86 vs. AS/400 vs. x86-64 vs. Motorola G5 Mac vs. 8088 vs. SPARC vs. DEC Alpha?

          [b]cross-platform[/b]: Are we talking about a language that works on different platforms? Are we talking about a language that can be ported from one platform to another without changing any core code, though some libraries have to be swapped out? Are we talking about a language that can be moved between platforms without having to change a single character of code or any libraries? Are we talking about a language that can be run on more than one platform in bytecode form to be run in a VM? Are we talking about a language that compiles to binary code once and runs on multiple platforms? Are we talking about a language that runs on multiple platforms with a JIT compiler? Are we talking about a language that runs on multiple platforms with an interpreter?

          We need to know what category of “platform” you mean, Jaqui, and we need to know what the minimum requirements are for something to be “cross-platform” before we can give you an answer to “best”.

          All things considered, some flavor of Lisp might be best, as long as you don’t require that part of “best” is “everybody knows it”.

        • #3151744

          definitions

          by jaqui ·

          In reply to Hey, Jaqui! Give us some definitions!

          cross platform is operating system and hardware.
          this lets Microsoft’s visual products right out of the running.

          if at most an application written in the language needs to be compiled to run on another operating system it is cross platform.

          if the sources for the application require ANY alteration it is not cross platform.
          [ in this, I include editing the shebang in a perl script, since if perl was installed correctly that edit is not required ]

          minimum requirement to be cross platform, is that one source for the language itself will work for all operating systems, like PERL, PHP, PYTHON, GCC [ yes they have a port for windows besides the cygwin etc ones ],

        • #3151725

          In that case . . .

          by apotheon ·

          In reply to definitions

        • #3151737

          Kool isn’t that…

          by dawgit ·

          In reply to Yup, depends on the application

          and really simple too. (& it works)

      • #3153896

        AJAX cross platform?

        by justin james ·

        In reply to Depends on the Application

        AJAX is hardly cross platform. Between it using JavaScript (many inconsistencies between browsers) and HTML (many inconsistencies between browsers), it is barely cross platform. And in terms of using it as a technique? Hope you enjoy writing the same code five times, once on the server (to accomodate those without JavaScript) and four times on the client (to accomodate all of the various browsers out there). Sorry, but trying to write AJAX is like trying to drown a hungry crocodile, as far as I am concerned.

        J.Ja

        • #3153761

          Could be…

          by ed woychowsky ·

          In reply to AJAX cross platform?

          The problem might be in the definition of cross-platform. Consider an AJAX application written for Firefox, it would essentially run on a platform that supported Firefox. By the way, crocodile tastes like chicken.

        • #3156390

          AJAX and browsers

          by sterling “chip” camden ·

          In reply to AJAX cross platform?

          The browser compatibility issues can be solved by using an intelligent framework, like Ruby on Rails, that generates the javascript for you and includes cross-browser support. But yes, you do still have to degrade for clients that don’t support or enable javascript at all.

        • #3157983

          That is a “band aid” not a “solution”

          by justin james ·

          In reply to AJAX and browsers

          RoR, prototype.js, etc. are all well and good, but they are not a “langauge.” AJAX is not even a “language” it is a *technique*. These frameworks are not languages, they are tranlators. That’s like if I write Pascal code, put it through p2c and claim I wrote C code.

          J.Ja

        • #3157810

          no contest

          by sterling “chip” camden ·

          In reply to That is a “band aid” not a “solution”

          Justin, I wasn’t claiming that RoR or AJAX are languages, I was only offering a solution to the non-cross-browser problem you posed concerning AJAX. When it comes to creating compatible solutions, I am less concerned with strict definitions and more concerned with getting the job done.

        • #3157244

          Sterling,

          by jaqui ·

          In reply to AJAX and browsers

          You raise a good point in web design, creating a site that will run on lowest common denominator, such as static pages. It’s to bad that not very many people actually do this, most sites are built to show off one method and ignore good practices.

        • #3157224

          Too true

          by sterling “chip” camden ·

          In reply to Sterling,

          It takes a lot of thought to make good use of AJAX while allowing non-AJAX browsers to work. Everyone should test their sites with javascript turned off to see how usable they are.

        • #3157174

          I don’t have to test like that,

          by jaqui ·

          In reply to Too true

          because My sites don’t use javascript or any other dynamic clientside scripting.

          I design them to be static html/xhtml on the client side. 🙂

        • #3157139

          Same here

          by justin james ·

          In reply to I don’t have to test like that,

          Static HTML/XHTML on the client side; I occassionally add a small bit of JavaScript validation that is replicated on the server side, because that is something users are used to and is shown to slightly increase usability. Outside of that, I avoid JavaScript, Flash, etc. Why write all of that code in JavaScript, when I have to repeat it all on the server end anyways for the downscale browsers? If I wanted to work my butt off, I would be digging ditches for a living… to quote myself, “AJAX is the Yugo of programming techniques”…

          J.Ja

        • #3157563

          I’m happy for you

          by sterling “chip” camden ·

          In reply to I don’t have to test like that,

          It must be nice to have users that don’t demand dynamic content.

        • #3157488

          dynamic content

          by jaqui ·

          In reply to I don’t have to test like that,

          is the actual content, that changes when an alteration is made in the database. 😀

          dynamic menus are clientside scripted animation sequences.
          [ unless, of course, they are css without using any javascript or flash. ]

          btw, here is an example of a cross browser drop down-slide out menu:

          http://www.cssplay.co.uk/menus/final_drop.html

          written entirely in css and xhtml.

        • #3165849

          re: Javascript and “dynamic”

          by apotheon ·

          In reply to I don’t have to test like that,

          Javascript has become almost entirely obsolete as used solely for dynamic presentation of content these days, with current technologies and techniques. It has, however, moved its usefulness to the realm of asynchronous data transport and attendant presentation modification. AJAX is basically shorthand for “use a Javascript function for asynchronous data transport to provide dynamic content and interface behavior modification”, but it sounds like it means a whole lot more than that because it’s a hip buzzword.

          Properly employed AJAX isn’t as awful as the naysayers would have us believe. It’s also not nearly as “cool” in any useful way as its proponents would have us believe. It has its place, though that place is much, much smaller than many seem to think.

          That being the case, I sympathize with Sterling.

        • #3157140

          I like to go one step further!

          by justin james ·

          In reply to Too true

          As I wrote a few days ago (http://techrepublic.com.com/5254-6257-0.html?forumID=99&threadID=184332&messageID=2023082&id=2926438), if your site is usable in Lynx, you are doing it right! Not that anyone uses Lynx, but it’s a great way to validate that even the most downwards capable browser can use your site. More importantly, it means that a *search engine* can index your site. The article has a lot in it, relevant to the AJAX end of this discussion.

          J.Ja

        • #3157109

          you are in error there on two points

          by jaqui ·

          In reply to I like to go one step further!

          1) lynx supports javascript unless it’s turned off.

          2) I use it. :p

    • #3159474

      Java (again)

      by jamesaaa8 ·

      In reply to fill in the blank -The best cross platform programming language is

      Despite everyone’s insistance that “write once, run anywere” is a joke, I can say that I have had much better luck moving Java apps between platforms than any compiled language. No, it doesn’t just magically work. But that’s true of Windows DLLs, STL implementations, POSIX libraries, different C compilers, etc. Still, I have plenty of Java programs that run on Windows, Linux, and QNX with no problems.

      • #3147837

        You have interesting ideas of what’s “portable”.

        by apotheon ·

        In reply to Java (again)

        Why are you comparing supposedly portable Java code with code in other languages that use platform-specific libraries? Try either comparing portable Java code with portable code in other languages or code using platform-specific libraries in Java with code using platform-specific libraries in other languages. Compare apples with apples. If you can still make your point, then maybe there’ll be something worth discussing.

        • #3161269

          Apples and apples

          by jamesaaa8 ·

          In reply to You have interesting ideas of what’s “portable”.

          My quick examples included:

          1) Windows DLLs

          Granted, this is obviously platform specific. But my point here was actually more about how keeping track of DLLs on even a single Windows machine was as bad or worse as keeping track of JVM implementations.

          2) STL implementations

          I fail to see how the STL can possibly be qualified as platfrom-specific. Different implentations can have wildly different behaviors.

          3) POSIX libraries

          Granted, POSIX is in fact itself a kind of platform. But the idea of POSIX is to allow applications that conform to the standard to run on platforms that conform to the standard. Nonetheless, “POSIX” code that works perfectly well on QNX might not work on VxWorks or Linux or Solaris, even though they all claim POSIX compliance. Again, this is to counter the earlier point about tracking JVMs; tracking POSIX implementations is just as bad.

          4) different C compilers

          Again, this can’t possibly be considered platform specific. The fact is, two different compilers (C or C++, and probably other languages as well) can interpret the ANSI spec in ways that your code works on one and is broken on the other. I have generally found that C code I compiled with GCC works when compiled with GCC on another platfrom. But I have found plenty of times where code that worked fine with GCC on Linux was broken when compiled with Borland bcc on Windows. And I’m talking “Hello, world!” code.

          I’m still not a 100% sure I’ve said anything “worth discussing,” but my 2 cents is that, despite the overwhelming disparagement cross-platform Java has taken in this thread, Java has mostly fulfilled it’s promise of “write once (carefully), run anywhere (within reason).”

        • #3146403

          the mythic portability of Java

          by apotheon ·

          In reply to Apples and apples

          “[i]1) Windows DLLs

          Granted, this is obviously platform specific.[/i]”
          Full stop. That sums it up. Thank you for playing.

          “[i]But my point here was actually more about how keeping track of DLLs on even a single Windows machine was as bad or worse as keeping track of JVM implementations.[/i]”
          Blame Microsoft, not the language.

          “[i]I fail to see how the STL can possibly be qualified as platfrom-specific. Different implentations can have wildly different behaviors.[/i]”
          It’s no more platform-specific than JVM implementations. It’s no more subject to differing behaviors across implementations than JVM implementations.

          “[i]Again, this is to counter the earlier point about tracking JVMs; tracking POSIX implementations is just as bad.[/i]”
          Actually . . . that’s not true. It’s not “just as bad”. It’s bad sometimes, and certainly not perfect, but it’s usually not as bad as differing JVM implementations often are. Much of that could be solved by opening the Sun Java source, of course, but that hasn’t happened yet.

          “[i]4) different C compilers

          Again, this can’t possibly be considered platform specific.[/i]”
          Nonsense. Compare the VS compiler for C/C++ to, well, any other compiler. It’s about as platform-specific as you can get.

          “[i]I have generally found that C code I compiled with GCC works when compiled with GCC on another platfrom. But I have found plenty of times where code that worked fine with GCC on Linux was broken when compiled with Borland bcc on Windows.[/i]”
          Meanwhile, I’ve seen stuff that runs on Blackdown fail on Sun’s JVM and vice-versa — and, even worse, I’ve seen stuff that runs on Sun’s JVM on one platform fail to run on Sun’s JVM on another platform. Furthermore, you can always port GCC to a new platform, but you can’t do that with Sun’s JVM.

          My point isn’t that C/C++ is necessarily more portable than Java so much as that Java isn’t really more portable than most other languages — languages that, according to the Java-portability glee club, aren’t portable. Perl is more portable than Java, as is Smalltalk.

        • #3146363

          I stand by my statements

          by jamesaaa8 ·

          In reply to the mythic portability of Java

          Me: “Windows DLLs … [are] obviously platform specific.”
          apotheon: “Full stop. That sums it up.”

          Not quite. If you want to include Windows in your cross-platform development, you’ll have to deal with it.

          As to the STL, I think we both agree that there can be issues. Apparently we don’t agree on wheter STL implementations or JVM implementations are “worse” or “better,” but I certainly see your point.

          I’m not sure why you’re busting my chops for pointing out that various C compilers can interpret ANSI differently, regardless of platform. We can even take VC++ out of the equation if you like. In fact, the example I used was GCC & bcc.

          apotheon: “Java isn’t really more portable than most other languages”

          Well, I’m not sure how we’re going to define “most” here. I would argue that C & C++ make up a good chunk of what’s in use today, and if someone held a gun to my head a said “write a program that runs on Linux, Windows, AIX, Max OS X, and VxWorks” I’d pick Java. Obviously I wouldn’t pick Visual Basic, and despite the success of Mono I wouldn’t pick anything .Net. (Mono running on OSE or QNX yet?) I’ll actually agree that Perl is more portable… but I would consider it a domain specific language, rather than a full blown language like C. As for Smalltalk, you’re back to the virtual machine implementation problem, so I can’t see how it would be any better than Java. In fact, last I checked there was no standardized GUI API for Smalltalk.

          apotheon: “Furthermore, you can always port GCC to a new platform, but you can’t do that with Sun’s JVM.”

          This is true. Of course, there are other JVMs you COULD port. Your point remains; Java should be truly open. Actually, I don’t care if Sun open sources their own Java code or not. What I care about is that a 3rd party can create an open or closed Java implementation (meaining JVM, libraries, compiler, etc.) without needing a license from Sun.

          Changed my mind; I do think this was interesting.

        • #3146335

          fought to a standstill

          by apotheon ·

          In reply to I stand by my statements

          We’ve pretty much argued it to death at this point. I could still debate the finer points with you, of course — for instance:

          1. If you’re programming with MS DLLs, you’re not doing cross-platform programming, period.

          2. I’m only debating C portability to point out that Java isn’t really any better than C — or, alternatively, that C isn’t any better than Java.

          3. By “most languages” I’m referring to languages, not programs written in a language. Scheme equals one language. Perl equals one language. Java equals one language. C equals one language. The fact that any (worthwhile) driver code is written in C these days, and that most application software is written in C++, doesn’t mean that C and C++, all by themselves, are “most languages”.

          4. I think you’re selling Perl short. You can do GUI programming in Perl, but GUIs weren’t even what we were talking about: we were talking about the “best” language for cross-platform development. It’s a very general question. Because of the generality of it, I listed several languages rather than just one in my answer — and because of that, I didn’t list a single language (like Java) that is mediocre at almost everything and excellent at almost nothing.

          5. If a “full blown language” is “like C”, then Java doesn’t qualify anyway. Would you write an OS or a driver in Java?

          6. There’s no (useful) standardized GUI API for anything. That’s not a shortcoming of Smalltalk. Any (major) language has multiple GUI APIs that it can employ. Personally, I consider that a good thing. For the record, anything more widely applicable and applied than, say, Javascript qualifies as a “major” language for these purposes.

          7. Unfortunately, the other JVMs aren’t anything like widely used (for the world of Java). GCC is one of the most widely used compilers, period. In any case, the problems between C compilers aren’t nearly as bad as those between JVMs in most cases. At least, that has been my experience. Maybe yours has been different.

          So, yeah, there’s always more we could argue — but there really isn’t much more to accomplish. C’est la vie.

          ———

          About Smalltalk:

          The virtual machine implementations for Smalltalk are actually pretty widely ported. There are some portability issues due in large part to the fact that the language hasn’t been subjected to the same widespread stress-testing as Java, but the portability issues that don’t arise (but do with Java) are more telling, as they’re the sort of thing that depend more on the language than on the implementation. In any case, even if portability issues at the same level of popularity ended up being equivalent, Smalltalk would still be a far better language. The inventor of what was to become Java, before it had that name, has even been known to refer to Java as SmalltalkMinusMinus, or Smalltalk–, in a bit of a pun on C++. He, like anyone else of whom I’ve ever heard who has had as much experience with Smalltalk as with Java, has a definite preference for the elder of the two languages.

          The guys who created Croquet (originally known as Tea) started out trying to write it in Java, in part because of the language’s popularity. They eventually gave it up in favor of Smalltalk because Java was getting in their way significantly. Kind of an indicator, I think.

        • #3147736

          Good discussion

          by jamesaaa8 ·

          In reply to fought to a standstill

          Thanks, apotheon, I think that was a useful discussion.

        • #3147360

          Java isn’t portable within J2EE releases.

          by x-marcap ·

          In reply to You have interesting ideas of what’s “portable”.

          Try Smalltalk. It is portable….

        • #3155895

          I’m aware of that.

          by apotheon ·

          In reply to Java isn’t portable within J2EE releases.

          I’m aware of both the nonportability issues of Java and the excellent portability of Smalltalk. In fact, I mentioned Smalltalk several times in this discussion before you brought it up. Did you mean to post that in reply to the other guy, perhaps?

        • #3156572

          Sometimes it takes repetition for slow students to learn ;-)

          by x-marcap ·

          In reply to I’m aware of that.

          I got interrupted by real work and left it sit ready to send. I never did read your post…

          Amazing how intelligent you are… (in this I’m sure we agree.)

          Smalltalk for Gui…
          C for OS level…

          My opinion with a finger on the scale…

        • #3156421

          absolutely

          by apotheon ·

          In reply to Sometimes it takes repetition for slow students to learn ;-)

          C for relatively low-level code (OS, drivers, high performance utilities, et cetera)

          Smalltalk for OOP GUI stuff

          something like Lisp, Perl, Ruby, et cetera, for most of the rest of what you might do

          edit: Whoops, my finger slipped. I fixed a typo in the title.

        • #3157920

          Why’d you mention him???

          by x-marcap ·

          In reply to absolutely

          Now he’ll participate in a rational discussion…

        • #3157246

          Why not?

          by apotheon ·

          In reply to absolutely

          He’s a reasonably rational guy.

    • #3147382

      ANSI C

      by too old for it ·

      In reply to fill in the blank -The best cross platform programming language is

      • #3147362

        For Non-gui C is great.

        by x-marcap ·

        In reply to ANSI C

        If you don’t include stuff like AS-400’s in that mix.

        Yuck!!!! I don’t want to tell you how bad AS400’s ANSI C was…

        I don’t know why they labeled it C even…

    • #3147364

      Smalltalk is the best for all GUIs…

      by x-marcap ·

      In reply to fill in the blank -The best cross platform programming language is

      Once a VM is available Smalltalk is the best.

      I can write in X windows on HPUX, move the source to Bill’s POS-OS and run it, and over to Solaris and have all the apps work and access an Oracle DB server.

      If you really want cross platform, Smalltalk is the best for Gui. Get it at Cincom.com

      • #3155896

        a better idea

        by apotheon ·

        In reply to Smalltalk is the best for all GUIs…

        I recommend going with GNU Smalltalk or Squeak (two free and multi-platform implementations based on Smalltalk-80) instead. For a place to learn more, I recommend http://smalltalk.org and http://squeak.org instead of cincom.com (which doesn’t have any easily located Smalltalk information as far as I can tell). The smalltalk.org website provides a bunch of useful links for Smalltalk implementations and instructional materials, so it’s a good resource no matter what Smalltalk implementation you might end up wanting to use.

        • #3156559

          IMHO cincom has better manuals for the newbie.

          by x-marcap ·

          In reply to a better idea

          I suspect that I have squeak and GNU on several boxes, and I like st80 better than the current, but for commercial apps, I do Cincom and charge 10% on software licenses as my upcharge… 10% of free is 0…

        • #3156414

          I’ll defer to your expertise.

          by apotheon ·

          In reply to IMHO cincom has better manuals for the newbie.

          I’m sure you know more about the quality of documentation available in commercial implementations of Smalltalk than I do. Of course, there are other ways to charge for development than a percentage of licensing cost, so I don’t see how your “10%” really suits as a justification. In fact, it strikes me as a conflict of interst: it’s in your best interest, according to such a pricing model, to ensure that the client is gouged for as much as possible. I prefer to provide my clients the best value possible.

          One of these days, I’ll actually become really competent with Smalltalk. Really I will. At the moment, I’m working on a Lisp dialect.

        • #3157924

          Since I provide sourcecode not just bundled apps

          by x-marcap ·

          In reply to I’ll defer to your expertise.

          I believe the best documentation on the language is necessary. I have had clients bring in two or three people to do large scale revamps, and editions, ans some have found it desirable to teach staff members Smalltalk, not just bring in consultants who leave with the knowledge. I write custom apps that end up in an insurance company’s homegrown products, and they have a staff of 80 Smalltalk coders…

          Do you have any clue how many calls to “Move a field about 10 Pixels even though everything is left justified are saved by the client who can drop into the gui and drag the field to where they want it?

          The point is, it isn’t just in my interest to do it that way, I believe it is in my clients’ best interest to have good commercial documentation for their staff. I may make more $$$ up front, and I only do jobs that will make money. I have no use for busy work… I am in business to make money.

          I also believe that if the client has any staff Smalltalk is easy to build apps with and it looks pretty darn nice.

          I charge 10% markup on all hardware and software.
          That is my business model. I charge hourly for installation and configuration. If it is a Symmetrix DMX that costs $4-800,000.00 the 10% for setup will include things like base training, powerpath install on main servers, site survey power analysis, AC analysys, rack layout, etc…. The process to sell one takes a month or more or sometimes over a year. Definitely not a drop and go. For a 2500.00 server, there is no profit by the time you drive to the clients, and load the base OS, but the clients who buy smaller servers tend to need some handholding, so they soak up more hourly cost… Mostly because they don’t know what they really want, and they don’t want suggestions about what they need…

        • #3157921

          Apotheon, sorry if last post seemed preachy

          by x-marcap ·

          In reply to I’ll defer to your expertise.

          My point is there is rarely the smaller 10% deals out there as we have headed into the mass market world. the larger deals are not only difficult to close, but take much longer lead time…

          Long gone are the days of 10,000.00 PC and 30% markup… You could write an application and market it vertically and make the bundle on the combination of hardware and software… I really miss the good old days…

      • #3156541

        Apotheon, I didn’t see the word Smalltalk. My fault I could have tagged on.

        by x-marcap ·

        In reply to Smalltalk is the best for all GUIs…

        I should have noticed your VM post. I was just giving people info without giving them too much reason to try to think. (no reason to strain delicate parts.)

        Think of talking to my dog… Sit! Stay! Good dog!

        Smalltalk Gui! Command line C… Good programmer.

        It works!!!

    • #3156222

      What do y think of C#?

      by murtuzahbookwala ·

      In reply to fill in the blank -The best cross platform programming language is

      C# is emerging as a quiet powerful language with its new version titled orcas (C# 3.0)

      • #3156141

        When it comes to Microsoft…

        by justin james ·

        In reply to What do y think of C#?

        … never consider beta or “futureware”. Consider the here and now reality. Vista, when it was futureware, had a lot of exciting and cool features. As Vista gets closer to the here and now, it is less and less interesting to me, since so many of the real goodies are stripped out. C# as futureware sounds OK. It still isn’t too cross platform capatable, so so much of its usefulness relies upon a one platform library (.Net Framework).

        J.Ja

        • #3156615

          Surprise….I like C#

          by jmgarvin ·

          In reply to When it comes to Microsoft…

          It is a powerful language and filled a lot of the gaps in Java. It is also a good language for developing more powerful apps and works well with the other portions of the Visual Studio suite.

          What I really like about C# is that they have streamlined a bunch of the kludgy OOP stuff in Java and they’ve made it easier to plug right into an API.

          It is also pretty quick. The JiT is pretty well done and everything runs smoothly (mostly).

          As far as cross-platform goes, there is Mono, but MS hasn’t thought beyond their platform…

        • #3157984

          I should have been more clear…

          by justin james ·

          In reply to Surprise….I like C#

          … C# today is an OK language. What I was calling “futureware” are the features proposed for C# 3.0. Who knows what the final release will actually have in it…

          J.Ja

        • #3157950

          I understand now

          by jmgarvin ·

          In reply to I should have been more clear…

          If C# 3.0 actually has what is promised (it won’t), it’ll be an AMAZING programming language. It will take OOP (or so it seems) to the next level…

          I do think MS is heading down the right track for a development IDE though. It is clean, functional, and integrates the rest of the suite seamlessly.

          I wish Linux had a powerful, unified, and clean IDE (I hate most of the IDEs that are out there) that integrated some languages and made life a little easier.

        • #3157271

          MS will join the crowd only…

          by onbliss ·

          In reply to Surprise….I like C#

          …if it can’t beat them. They will first try beating everybody to pulp, if they fail they will embrace the defacto standar 🙂 So it is unlikely that they will think beyound their platform unless they are forced to seek.

    • #3156684

      assembly

      by akalinowski ·

      In reply to fill in the blank -The best cross platform programming language is

      1110101010101010101010100001010010101010101010101010100010000101011101001010010101001010100101010101111010101010101010101010000101001010101010101010101010001000010101110100101001010100101010010101010111101010101010101010101000010100101010101010101010101000100001010111010010100101010010101001010101011110101010101010101010100001010010101010101010101010100010000101011101001010010101001010100101010101111010101010101010101010000101001010101010101010101010001000010101110100101001010100101010010101010111101010101010101010101000010100101010101010101010101000100001010111010010100101010010101001010101011110101010101010101010100001010010101010101010101010100010000101011101001010010101001010100101010101111010101010101010101010000101001010101010101010101010001000010101110100101001010100101010010101010111101010101010101010101000010100101010101010101010101000100001010111010010100101010010101001010101011110101010101010101010100001010010101010101010101010100010000101011101001010010101001010100101010101111010101010101010101010000101001010101010101010101010001000010101110100101001010100101010010101010111101010101010101010101000010100101010101010101010101000100001010111010010100101010010101001010101011110101010101010101010100001010010101010101010101010100010000101011101001010010101001010100101010101111010101010101010101010000101001010101010101010101010001000010101110100101001010100101010010101010111101010101010101010101000010100101010101010101010101000100001010111010010100101010010101001010101011110101010101010101010100001010010101010101010101010100010000101011101001010010101001010100101010101111010101010101010101010000101001010101010101010101010001000010101110100101001010100101010010101010111101010101010101010101000010100101010101010101010101000100001010111010010100101010010101001010101011110101010101010101010100001010010101010101010101010100010000101011101001010010101001010100101010101

      • #3156605

        a couple of small issues

        by apotheon ·

        In reply to assembly

        1. Assembly language is different for every single hardware platform, so it’s not portable AT ALL.

        2. Assembly language is more like a one-for-one secret decoder ring binary octets than straight binary. For instance, a Hello World for IBM-PC Assembly looks something like this:
        http://www2.latech.edu/~acm/helloworld/asm.html

    • #3156486

      Truly cross-platform

      by sterling “chip” camden ·

      In reply to fill in the blank -The best cross platform programming language is

      As far as being truly cross-platform, I have yet to see any language beat Synergy/DE (http://www.synergex.com). It compiles to virtual machine code that’s compatible across systems that have the same address size and bit order, so it is actually possible to write an app in that language that you compile on Windows or Linux, and run on both. Where the VM code is not compatible, usually only a recompile/relink is needed to port. Most of the time, of course, there will be some platform-specific conditional code, but much less than in other languages, because of built-in abstractions for things like file paths. It’s a business-oriented language, though — not something you want to write drivers with.

    • #3157769

      There is no single language.

      by dryflies ·

      In reply to fill in the blank -The best cross platform programming language is

      somebody mentioned drivers. drivers will never be cross-platform by their very nature of being a liaison to the platform itself. what matters more than the language is the API to the OS. I would look at the runtime libraries for each language and see which change the least from platform to platform. PHP and PERL both come to mind. C(and variations thereof) also come to mind. COBOL, If I wanted to write a novel I would not have gone to college for a degree in CS. I would have stayed in cancun after spring break and started writing. I think that guy dumped his deck on the floor! all in all, if you want to be successful in software development you need to know the language your customer wants you to use.

    • #3157322

      And from left field …. TCL/TK

      by tommy higbee ·

      In reply to fill in the blank -The best cross platform programming language is

      I know what some of you are saying (those who are not saying, “What’s TCL/TK?”) It’s a scripting language, not something you would use in developing major applications.

      But within its scope, a TCL/TK program will run on Windows, multiple versions of Unix/Linux, and Macintosh. It will also run on the AS400 under the PASE environment. There’s probably no quicker or easier way to script a moderately complex action that executes on your chosen platform, with a GUI or without (your choice). Perl is also cross-platform, but doesn’t hide the underlying platform as well as TCL. Plus, TCL offers the ultra-handy “starkit” packed programs, where all scripts and libraries are in a single archive, and installation of your program consists of copying over the archive and a platform-specific runtime to the target computer. If that’s too much installation effort, you can embed the archive into the runtime and run it like a regular executable.

      If you want to develop a huge project, you’ll need something like C/C++, Java, COBOL, etc. But for a lot of little projects, TCL/TK may be the fastest way to get there.

    • #3157568

      It’s just an academic question

      by m_a_r_k ·

      In reply to fill in the blank -The best cross platform programming language is

      How often does one really need to develop a cross-platform application? Not very often. For truly powerful and efficient applications, the software will almost always need to access some OS- or platform- or compiler-specific features. That throws a curveball at cross-platformability (is that a real word?) if you are hoping to simply recompile the code with no changes.

      C and C++ are definitely NOT cross-platform unless you use only POSIX-compliant features and/or only features specified in the official C and C++ standards. Have you ever noticed all the #if macros littered throughout C or C++ code that is meant to run on different platforms?

      • #3157559

        I’d have to disagree

        by sterling “chip” camden ·

        In reply to It’s just an academic question

        Companies that develop software for resale (like most of my clients) often care very much about cross-platform development. I have quite a few customers that market their products on Windows, *ix, and OpenVMS. Their applications are business-oriented, so it’s imperative that they maintain one source tree for all platforms. Using a language like Synergy/DE, they can do that, with a minimum number of .ifdef’s.

        • #3157546

          Are these large applications?

          by m_a_r_k ·

          In reply to I’d have to disagree

          Or little utility programs? A few hundred lines of code or tens of thousand? What in the world is Synergy/DE?

          I don’t know of any large apps (pick any–MS Office, TCP/IP stack, web browser,…. (the list would be long), that are cross-platform with no #if’s. If you are careful, you can probably use object-oriented design to come up with something that is pretty close to cross-platform. You’ll have different classes for each platform, but that’s OK and is one of the uses of OO.

        • #3157522

          Huge

          by sterling “chip” camden ·

          In reply to Are these large applications?

          Hundreds of thousands of lines of code, developed over decades. These are business-oriented applications, not system-specific utilities like MSOffice or a web browser. Examples: Software Unlimited Corp’s Case Management System (http://www.softwareunlimitedcorp.com), an application for automation of proescutors, courts, and attorneys. IBCOS Computer Systems (http://www.ibcoscomputers.co.uk/) agricultural systems. Synergy/DE can be found at http://www.synergex.com

        • #3157504

          Interesting

          by m_a_r_k ·

          In reply to Huge

          Well, from the product documentation, I’ll have to say that this Synergy thing is the most cross-platformable development language out there. With 4GL languages like this appears to be, you probably lose some control of resources and run-time performance probably takes a hit, but nowadays with ultra-fast processors and gigabytes of memory, that part of software development is unfortunately diminishing in importance.

        • #3157486

          Mark,

          by jaqui ·

          In reply to Interesting

          cpu and ram make resource control not as important?
          so You are giving away a system powerful enough to run your application when someone buys the application?

          cause FORCING hardware expenditures on clients is a bad way to keep clients.
          it is just as important now to write low memory footprint and efficient cpu usage software as it has always been.

        • #3157405

          I disagree

          by m_a_r_k ·

          In reply to Mark,

          Take a look at Windows as an example. Every incarnation requires faster machines and more memory. And people and corporations willingly upgrade their hardware for it. Then, when a lot of hardware is upgraded, the software vendors gleefully produce bigger and more resource-intensive software. Twenty-five years ago, there were no hard drives and we had 8-bit procssors and 64K of RAM. My first project as a software developer was to develop a real-time application that ran on a 8-bit, 2 MHz processor with 8K RAM. Are you telling me that today’s software products are still developed with those same resource constraints? I’d be a fool and would get fired if I wasted all my time trying to cram my applications into as small a footprint as possible.

          There really aren’t many software products out there these days that will tax your machine. Not with 2+ GHz 32- processors, 512K RAM or more, big, fast hard drives, etc. About the only ones are video games, and yes these vendors DO force customers to install a blazing fast 3D graphics cards. A graphics card with 256K or more of RAM? We sure didn’t HAVE to have that 20 or even 10 years ago. But to answer your question, yes in general, software vendors DO require customers to upgrade hardware if they want to buy their latest products. It’s an easy thing to advertise and convince customers of the advantages to all the new improvements in version X as opposed to version X-1, if only you spend a few bucks to buy new hardware, because we all know that the average turnover in computer equipment for businesses is less than three years anyway.

          Nowadays I can write software to arbitratily allocate a 20 megabyte buffer (or much larger if I wish) for data manipulation, without worry that I will run out of resources. Because I can do this, I can develop a much faster program (reducing disk accesses by several orders of magnitude). In the olden days I always had to very cognizant of running out of memory. Checking the return value from C’s [i]malloc[/i] was a necessity. Nowadays, checking the return value from my [i]new[/i] function is just a matter of habit.

          In the olden days with only a RS-232 serial port to transfer data between machines, we had to be very aware of transmitting unnecessary data. Now with 1 Gb/s Ethernet, we can and do transmit all sorts of extra, but useful, data (for debugging, diagnostics, etc).

        • #3157397

          oohhh bad example

          by jaqui ·

          In reply to Mark,

          windows is a perfect example of why NOT to do it, the extra hardware expense on top of the exorbitant software expense for beta ware is just not worth the cost. :p

          open letter to microsoft:

          What Hardware are you supplying with vista? Since you insist on being unreasonable and forcing hardware upgrade with new versions of your software, you will be paying for all the new hardware won’t you?
          [ either that or paying us to beta test your malware called windows vista on hardware you supply, and yes, you have yet to release any software that is ready for release, you release beta ware and call it production / stable ware ]

        • #3165864

          One gigabyte

          by m_a_r_k ·

          In reply to Mark,

          I read somewhere that MS is going to recommend 1 GB for Vista. Holy cow! Windows is a good example for my argument because that is what is driving the software bloat. You supposedly need new hardware to run each latest Windows version. So with the bigger disks and faster CPUs and more memory, the rest of the world is less constrained to write small, fast applications. There isn’t much incentve anymore to make an application run 20% faster than blazing fast or use 20% less memory. Who cares if an app uses 50 MB of memory or 60 MB? Or does something in 10 nanoseconds or 12 nanoseconds? In the old days, using 50 KB or 60 KB, or running in 10 secs instead of 12 secs was an expensive choice in terms time and especially money regarding memory costs per byte. (Nowadays we speak in terms of cost per megabyte whereas in the past a teensy little megabyte was only a dream).

        • #3157408

          Not a 4GL

          by sterling “chip” camden ·

          In reply to Interesting

          Technically, Synergy/DE is a 3GL. It is compiled to virtual machine code (except on OpenVMS, where it compiles to native). It’s also quite scalable and performs well (though not on a par with C). Its target market is high-end, multi-user environments. The database system is light-weight and powerful, but they also provide access to SQL databases. And they have a proprietary back-end plugin for the web that can be used from Java, .NET, and COM.
          Disclaimer: they are one of my clients.

        • #3157399

          A couple of questions

          by m_a_r_k ·

          In reply to Not a 4GL

          What’s the learning curve on that beast?

          And, what’s the hardware requirements for using the toolset? In reference to Jaqui’s post, I’m going to go out on a limb and say that I am sure the h/w requirements are much more than Borland Turbo C’s were 20 years ago. 😉

        • #3165781

          Synergy/DE requirements

          by sterling “chip” camden ·

          In reply to Not a 4GL

          The memory footprint for Synergy/DE is pretty small. Of course it depends on how the application is written, but the core runtime and UI Toolkit are less than 3MB. Here’s a chart about what operating system versions are supported: http://www.synergex.com/solutions/synergy/currversplat.asp

        • #3165779

          Learning curve

          by sterling “chip” camden ·

          In reply to Not a 4GL

          As far as learning Synergy/DE, it is a procedural language (they are just now adding OOP syntax), so it depends on how comfortable you are with a top-down, non-OOP approach to coding (for now). If you have a Pascal, Algol, COBOL or Fortran background, it’s much easier than any of those without losing any power of expression. You can get to pointers if you must, but they aren’t required or encouraged.

    • #3157520

      Technically it is…

      by yinbig ·

      In reply to fill in the blank -The best cross platform programming language is

      HTML – Works everywhere….

      • #3157487

        ok..

        by jaqui ·

        In reply to Technically it is…

        using html only, no other language, including javascript, write an application to query a database, allow alteration of a record and update the database.

        btw, you will fail, since HTML is a MARKUP language, good only for layout/ presentation, everything else is beyond it’s abilities.

        • #3165842

          more specifically

          by apotheon ·

          In reply to ok..

          You asked for a cross-platform programming language. HTML is not a programming language: it’s not Turing-complete. It’s also not any kind of scripting language: it doesn’t even have control structures. It contains no conditional, state maintenance, or internal input/output handling capabilities.

          It is, in brief, a configuration language and nothing more. In specific, it is a presentation configuration language, and it is a particular limited subtype of configuration languages called a markup language, so it’s not even one of the more complete, powerful, or flexible configuration languages.

          Yeah, you’re right, HTML doesn’t count. It doesn’t even come close. Saying HTML is the most cross-platform compatible programming language is a little like saying the receipt from your last ATM transaction is the most enthusiastically accepted currency worldwide: it’s not even worth the paper on which it’s printed to most people, particularly those who don’t speak the same language and are not familiar with the currency its printed text represents.

        • #3165598

          I was going to respond to this…

          by justin james ·

          In reply to more specifically

          … and then I read your reply and saw that you said exactly what I was going to send.

          If I was a hiring manager and saw that someone listed “HTML” as a “programming language” I doubt I would hire them.

          HTML is a slightly less friendly version of using WordPErfect 5.1. Instead of using a bunch of key combinations to wrap text in markup, you write out tags. Knowing HTML is like knowing how to use a word processor. Is it a useful, valuable skill? Yes. Is it “programming”? Absolutely not. It is markup, plain and simple. It is a computerized highlighter, it does the same task.

          Then again, it must be very hard, because 10 years after the Web boom started, and there still are no good, plain HTML WYSIWYG editors out there for it…

          J.Ja

        • #3165548

          I did respond to this…..

          by yinbig ·

          In reply to I was going to respond to this…

          …since you think you are being so smart

          Actually HTML is a data format, not a text markup, computerised highlighter or even a word processing-esk program (like WordPerfect 5.1)

          It is parsed by a program just like (say) word for the .doc format or paint for a .jpg

          If I was a hiring manager and was given your html description, doubt I would hire the individual.

        • #3166256

          Self-contradictory much?

          by apotheon ·

          In reply to I did respond to this…..

          HTML = Hyper[b]Text Markup[/b] Language

          You said “HTML is a data format, not a text markup”.

          Let’s see. It’s “(hyper)text markup”, but it’s “not a text markup”. Yeah. Hang on, I’ll get it any minute now. I’m just waiting for the epiphany to hit.

          I’d be far more likely to hire based on his description of HTML than yours. You called it a “programming” language, which it most definitely is not. You’ve even admitted as much, calling it “a data format”, and something that is parsed by a program like a Word document (thus comparing it to something like a Word processor document, as J.Ja said) or an image file.

        • #3165615

          OK….2

          by yinbig ·

          In reply to ok..

          Question was – Best Cross Platform Programming language. Never indicated what it needs to program????

          So for layout / presentation programing HTML is very cross platform at it’s task……is it not?

          The question was answered, just not to your liking I guess.

        • #3166389

          It won’t run if there is no webserver.

          by x-marcap ·

          In reply to OK….2

          It is a data format. I have about 40 UNIX servers html is completely foreign to.

        • #3165882

          Won’t run if there is no Compiler?

          by yinbig ·

          In reply to It won’t run if there is no webserver.

        • #3164957

          not really true

          by apotheon ·

          In reply to Won’t run if there is no Compiler?

          Programs that are compiled to persistent executable binaries will run on systems that don’t have compilers installed. You can trade .exe files around between Windows systems all day long without any compilers involved.

        • #3164915

          Not the point

          by sterling “chip” camden ·

          In reply to not really true

          Some languages do require a runtime environment to be installed in order to run. That’s not the point. A programming language qualifies as such by being Turing complete, IMHO.

        • #3165497

          I agree, of course.

          by apotheon ·

          In reply to not really true

          The big mistake yinbig is making here is that he’s referring to HTML as a “programming language”. Turing completeness is a bare minimum for calling something a “programming language”, in my estimation, and there may even be more necessary than that (depending on perspective on what “programming” means, as compared with something like “scripting”).

          On the other hand, yinbig just insists on making yet more inaccurate statements, comparisons, and so on, so I figured I’d set him straight — even if a runtime environment, parent application, server process or something else above and beyond the basic OS platform being needed is enough to disqualify something, there are a lot of programming languages whose product would not be disqualified (such as Haskell, OCaml, C/C++, Objective C, Pascal, Fortran, and so on). Specifically in the case of compiled languages, one generally doesn’t need a compiler to run its compiled binaries, so the question of needing a compiler is entirely inaccurate on the face of it.

          Perhaps he’s not aware that Apache itself is compiled from source code in a programming language.

        • #3166504

          Cross-platform?

          by apotheon ·

          In reply to OK….2

          Sure, it’s mostly cross-platform. On the other hand, it’s [b]not a programming language[/b].

          There are no control structures. It has no loops, no iteration, no decision trees, no algorithm implementation, no variables, no memory management (automatic or manual), no I/O, no recursion — nothing. It is [b]not programming[/b]. It’s no more programming than using MS Paint to draw lines is programming. It is layout and color definition. Period. That’s it. That’s all there is to it. Without adding Javascript, PHP, or some other [b]actual programming language[/b] to the mix, [b]there is no programming involved[/b].

        • #3165417

          Found this on the subject…

          by ___._ ·

          In reply to Cross-platform?

          Just out of interest…W3.org states the following: (not the “not to be a full” part below)

          Many Web technologies are designed to exploit the Rule of Least Power. HTML is intentionally designed not to be a full programming language, so that many different things can be done with an HTML document: software can present the document in various styles, extract tables of contents, index it, and so on. Similarly, CSS is a declarative styling language that is easily analyzed.

          Does this not imply, by W3.org itself that HTML is a programming language of some sort??

        • #3164475

          No, it doesn’t!

          by apotheon ·

          In reply to Found this on the subject…

          It absolutely does [b]not[/b] imply it’s a programming language! Are you dense? Can you not read and understand plain English? It says [b]not[/b] a programming language! [b]NOT[/b]! Get it? Not a programming language? What part of “not” do you “not” understand?

          It implies [b]precisely the opposite of what you’re saying[/b]!

          Criminy! Where are you people getting these asinine notions of what constitutes programming?!

        • #3164472

          From people who believe that programming..

          by x-marcap ·

          In reply to No, it doesn’t!

          Is nothing more than typing…

        • #3164286

          Criminy – can you read??

          by ___._ ·

          In reply to No, it doesn’t!

          How dare you jump down my throat at the first opportunity with trumped up claims of mordant stupidity. You know absolutely nothing about peerage and respect.

          In your opinion, just by posting a remark against what you believe, I suddenly deserve such scathing remarks. It is trumped up persons similar to yourself who give our noble profession a bad name. The kind of person who think they know all and attempt to belittle others who veer from their party line.

          Read the following – it is not boolean remember, it is English…

          I do NOT fully understand what you mean (this implies I kind of understand)

          He did NOT fully finish the job (but he did do some of the job)

          HTML is intentionally designed NOT to be a full programming language (‘not to be a full’ – thus imples it is a ‘kind of’ the key work is FULL)

        • #3164285

          where?

          by jaqui ·

          In reply to No, it doesn’t!

          why from the same place that they got the idea that scripting a few exel macros makes them a programmer.

          from MICROSOFT

          scripting macros is end user clerk stuff, not it department.

        • #3145342

          Not a “full” programming language…

          by sterling “chip” camden ·

          In reply to No, it doesn’t!

          …like your sister is not a “full” virgin

        • #3145286

          Sterling:

          by apotheon ·

          In reply to No, it doesn’t!

          Yeah, and she’s only “a little pregnant”.

        • #3145225

          apotheon:

          by sterling “chip” camden ·

          In reply to No, it doesn’t!

          …but those who rely on only HTML for anything are royally screwed

        • #3145215

          Royally?

          by apotheon ·

          In reply to No, it doesn’t!

          Does that mean their children will be the heirs apparent for the “HTML is programming” fan club?

          This whole discussion is like a throwback to the late ’80s when I kept hearing to people refer to things like using a word processor or playing Silpheed as “programming”, or the mid-nineties when I heard them referring to installing Microsoft Windows as “programming”.

        • #3145207

          mid 90’s?

          by jaqui ·

          In reply to No, it doesn’t!

          they still refer to installing software as programming.

          I took one such person and parked them in front of a linux cli login, then started emacs up ]:)

          they now do not refer to installing software as programming.

        • #3145130

          Old timer’s tale – how big was YOUR fish?

          by sterling “chip” camden ·

          In reply to No, it doesn’t!

          I remember back in the late 70’s when installing an O/S WAS programming — you had to modify and compile assembler source files for your hardware configuration. Of course, that was back when we wrote our own text editor, card-reader driver, print spooler, etc.

        • #3145121

          Ah, but . . .

          by apotheon ·

          In reply to No, it doesn’t!

          You weren’t writing Microsoft Windows.

          Too bad — you might have done it “right”.

    • #3144690

      The answer is Oracle PL/SQL

      by lewisc1 ·

      In reply to fill in the blank -The best cross platform programming language is

      PL/SQL runs on every platform that Oracle runs on (which is most) and has for longer than java has been around.

      LewisC

      • #3144657

        ok, and

        by jaqui ·

        In reply to The answer is Oracle PL/SQL

        if you don’t have Oracle, or any other SQL server, will it run and accomplish anything?

        • #3144633

          No more than Java without a JVM

          by lewisc1 ·

          In reply to ok, and

          or PHP without the runtime or .net without the….

          I think you get the point.

          😉

          LewisC

        • #3144504

          java?

          by jaqui ·

          In reply to No more than Java without a JVM

          who in their right mind would ever use java for anything?

          talk about a non portable language.

          PHP doesn’t have a runtime, it has an interpreter. :p

          .net? it’s platform specific, so it doesn’t count as cross platform at all.

          edited for typo

          I know, I was poking fun, because sql is actually extremely limited, it can only query a database, from an engine that supports sql, which most do, which is why SQL is concidered a QUERY language more than a programming language.

        • #3155568

          Who said SQL?

          by lewisc1 ·

          In reply to java?

          I said PL/SQL. That is a complete programming language. Check out http://techrepublic.com.com/b2b-trcommunity/5254-6257-0.html?forumID=99&threadID=179714&messageID=2023038&id=610372
          for the difference between SQL and PL/SQL.

          SQL is a query langauge. PL/SQL is a programming language.

          Might want to do some research before making pronouncements.

          LewisC

        • #3144632

          No more than Java without a JVM

          by lewisc1 ·

          In reply to ok, and

          or PHP without the runtime or .net without the….

          I think you get the point.

          😉

          LewisC

        • #3144625

          No more than Java without a JVM

          by lewisc1 ·

          In reply to ok, and

          or PHP without the runtime or .net without the….

          I think you get the point.

          😉

          LewisC

    • #3144532

      Perl

      by guygo ·

      In reply to fill in the blank -The best cross platform programming language is

      Period

      • #3144505

        The only issue with PERL

        by jaqui ·

        In reply to Perl

        is in os specific [ read distro specific ] configurations.

        that there shebang line may need to be edited for the script to run on a different system.

        • #3144502

          not necessarily

          by apotheon ·

          In reply to The only issue with PERL

          You can always run it via an explicit call to perl at the CLI.

          Anyone that puts Perl anywhere other than /usr/bin/perl is just asking for trouble, though. That’s simply the Right Place to put it on any unixy OS.

        • #3144499

          one or two

          by jaqui ·

          In reply to not necessarily

          put a symlink to their perl installation in /usr/bin instead of actually having the executable in the standard location.

          I can’t remember which ones, since I was just looking at the distros quickly to see how they were set up, and for ease of install for newbies.

        • #3144132

          Yeah, and . . .

          by apotheon ·

          In reply to one or two

          . . . that just proves my point: the shebang line works. If the perl binary isn’t there, or a symlink to it isn’t there, someone is doing something really friggin’ weird and should be prepared to deal with the consequences.

    • #3144474

      How about PHP vs Perl … Ajax, or JavaScript or Python or Ruby???

      by wolfendbd ·

      In reply to fill in the blank -The best cross platform programming language is

      I am not expert but I like PHP vs Perl, but how about the others I list??? I am thinking about Python soon.

      • #3144464

        okay…

        by jaqui ·

        In reply to How about PHP vs Perl … Ajax, or JavaScript or Python or Ruby???

        AJAX is an implementation of javascript, not a language itself.

        php, perl, python and ruby were all mentioned already.

      • #3144130

        Ew, yuck, PHP.

        by apotheon ·

        In reply to How about PHP vs Perl … Ajax, or JavaScript or Python or Ruby???

        PHP is useful sometimes, but it’s not as much a general purpose cross-platform language because most of the time you only have it available if you have a webserver installed. In fact, using PHP outside the webserver is a tremendous exercise in frustration, genreally speaking — if you’re familiar with other languages better suited to such uses.

        Perl has a much richer and more powerful syntax than PHP. PHP itself is nothing but an anemic syntax wrapped around the biggest bucket of core functions I’ve ever seen in a language (no wonder it’s slow). If all you’re doing is conditionals, loops, content and code inclusion, and HTML processing, PHP does its job well enough. If you want something more substantial, you’d be far better off with Perl.

        Python is a favorite of many, and probably belongs in the same class as Perl. I personally dislike it rather a lot. Ruby is an excellent language, also in Perl’s class of language types, but from my perspective it does what Python’s trying to do, only better.

        As Jaqui pointed out, AJAX isn’t a language. It’s really just a little bit of Javascript for doing targeted content exchanges with a server on a single webpage without having to reload the whole thing.

    • #3144242

      depends on what you want to accomplish

      by bg6638 ·

      In reply to fill in the blank -The best cross platform programming language is

      If your goal is for lower level support, my answer is C, simply the best for cross platform compatibility. For business apps, COBOL. Yeah go ahead and laugh, but I’ve been able to get a block of COBOL programs to run virtually unmodified on IBM 360/370/390’s, Honeywell, TRS-80, Wang, Burroughs, Data General, IBM S34/36/38/AS400, and Wintel PC’s.

      • #3143345

        you know,

        by jaqui ·

        In reply to depends on what you want to accomplish

        your post title is probably the best answer so far.

        you could have taken the body a lot further though, it kind of hangs like a partially completed thought.

        • #3143313

          …and here I thought…

          by sterling “chip” camden ·

          In reply to you know,

          …that you posted this question with the intention of starting a language war.

        • #3141446

          Technically…………..

          by bg6638 ·

          In reply to you know,

          Look at your question “Fill in the blank, The best cross platform programming language is….” This implies that you were looking for a terse one or two word answer. While I could have answered with a several thousand word essay, I choose to be very brief.

    • #3144896

      C, period.

      by jbond ·

      In reply to fill in the blank -The best cross platform programming language is

      I have had to translate so much stuff to C it is not funny. C is both easy to port and easy to use in filling in the cracks of a system that is different than the last system.

Viewing 23 reply threads