Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
×
Software

The Schizophrenic State of Software In 2014 209

jfruh writes: "The current state of the world of software is going in two radically different directions. On the one hand, server-side software is maturing, with wide consensus on tools and techniques that can be used across platforms. On the other hand, client-side programming is an increasingly fragmented mess, with the need to build apps for the Web and for multiple PC and mobile platforms, all natively. But of course, the server and client sides have to work together to deliver what people actually want."
This discussion has been archived. No new comments can be posted.

The Schizophrenic State of Software In 2014

Comments Filter:
  • common platform (Score:4, Insightful)

    by Anonymous Coward on Friday January 31, 2014 @11:46AM (#46120827)

    If only we had some standardized, ubiquitous platform for delivering information and applications to all sorts of devices. A platform that permitted linking between apps in a sort of "web" instead of having everything be isolated and separate. A platform that didn't require approval or payoff of competing third parties. Man, I must be dreaming.

    captcha: mourning

    • by tepples ( 727027 ) <tepplesNO@SPAMgmail.com> on Friday January 31, 2014 @12:20PM (#46121211) Homepage Journal
      Yes, you are dreaming. Operating system publishers leave features out of their browsers on purpose to push their proprietary native app platforms. Ever tried using WebGL, the Stream API, or <input type="file"> with content types other than pictures and videos in Safari for iOS?
  • Be Thankful (Score:5, Insightful)

    by TrollstonButterbeans ( 2914995 ) on Friday January 31, 2014 @11:48AM (#46120865)
    Programming is always going to be a mess and there will never stop being new platforms.

    This is something to accept in an industry that is by definition always going to be on the bleeding edge of change.

    It is part of the fun --- go back 30 years and it was mainframe vs. personal computer and IBM PC vs. Apple vs. Commodore --- in the 1990s hardware graphics acceleration and web browser and GUIs were the agent of change.

    Ask if anyone thought Objective C or Java were going to be important programming languages on phones in 2005?
    • Re:Be Thankful (Score:4, Informative)

      by Anonymous Coward on Friday January 31, 2014 @11:56AM (#46120961)
      Java was an important programming language on phones in 2005.
    • by jythie ( 914043 )
      *nods* and, if nothing else, it is a good indication that there simply is not one right solution and that various domains will always have pieces that suit them best. Though I do find the OP rather odd in that they are describing a single domain as 'across all platforms' and then expresses surprise that other domains have gravitated towards other solutions. Of course server-side technology is going to start looking similar to itself, just like if you go into embedded stuff a lot of it has gravitated towar
    • Re:Be Thankful (Score:4, Insightful)

      by sl4shd0rk ( 755837 ) on Friday January 31, 2014 @12:09PM (#46121071)

      Ask if anyone thought Objective C or Java were going to be important programming languages on phones in 2005?

      Java is indeed a resource hog, but I think it's ubiquity was already embedded in the ARM platform long before 2005 - actually pretty much a given for mobile development. Objective C is much more of a surprise. Had it not been for the advent of "iphone apps" I think it would have remained relegated to the cubicles of NeXt geeks. The syntax is simply too obsucre (manufactured to obscure it's underpinnings) to attract sane developers already invested it other popular high level languages.

      • I actually find it quite delightful to work with. They managed to make something with the speed and low-levelness of C, yet with very straightforward reasonable memory management, mostly enforced by convention - so much so that ARC was possible.
      • This.

        Obscure syntax, lack of quality stack overflow answers to questions, terrible API, reliance on XCode...I found it an absolute nightmare, and I code in C++.
        • I found it an absolute nightmare, and I code in C++.

          Well, thar's 'yer problem.

          It's been a decade since I've done any Objective-C, but, coming from a C++ background, among others, the advice I found useful was to think of it as a way to get C to do smalltalk, not a way to add message passing to C++.

          • Well, thar's 'yer problem.

            Yes :-)

            It's been a decade since I've done any Objective-C, but, coming from a C++ background, among others, the advice I found useful was to think of it as a way to get C to do smalltalk, not a way to add message passing to C++.

            Smalltalk was a little before my time. I learned OOP on Java (yikes!) and Python then got a job doing C++ (even more yikes). All the objective C I did was on my own. It also didn't help that the mac I had was an old macbook with tiny screen - it makes storyboarding and XCode awful to use, and I never got ninja enough with the syntax to just slam it out in vim. I got the feeling it could be a language I could learn to like, but after I hopped off the Apple bandwagon at the Iphone 4 and got a droi

    • by Twinbee ( 767046 )

      Programming is always going to be a mess and there will never stop being new platforms.

      That's like saying text encodings will always be a mess. They have been, but UTF-8 [youtube.com] has come along to save us all from the hell of multiple incompatible encodings. It's fast getting towards the stage where everyone has standardized on it. Something similar could be said for USB too.

      If a beautiful OS takes off (something that ISN'T OS X, Windows, Android OS, iOS or Linux before anyone thinks I'm taking sides), and with it, comes a beautiful language (fast, terse, flexible, and allowing code that's easy t

    • Re:Be Thankful (Score:4, Interesting)

      by unimacs ( 597299 ) on Friday January 31, 2014 @12:34PM (#46121345)
      I agree that from a developers perspective this IS part of the fun. And what's even more fun is that there's going to be an explosion in the use of micro controllers as people figure out what's possible from messing around with arduinos and the like.

      But from the business side it sucks. Also as a developer you have to be careful you don't get yourself locked into one technology. To me learning new stuff is part of what makes my job enjoyable but far too many of us get comfortable and find ourselves reaching into our middle years with skills that are no longer in demand.
      • by Anonymous Coward

        I don't get it. Why do you think that learning five, or a dozen, or fifty ways to do the same damn things is fun?

        This is precisely why CS (really IT) is such a horrible field - you have to spin your wheels, faster and faster, just to do the same damn things, over and over.

        Boy how I regret wasting time studying this field! Learning new things in science or math areas is fun, even history or psychology, medicine, neuroscience, the world is wide open.

        CS/IT has become all about learning yet one more way to glue

    • "Ask if anyone thought Objective C or Java were going to be important programming languages on phones in 2005?"

      Repeat what I wrote above:

      The Motorola Razr, which came out in 2004, while not Android was still a full-blown smartphone that supported Java apps. Yes, Java programming for phones important even then.

      • Define "supported" and "Java apps". At the time, Java was even more fragmented than it is now. Java could mean all kinds of things, but the Java you found on a Motorola Triplets phone or its descendants (including the RAZR, which I owned two models of) was pretty mean. Java applets had to be specifically designed to run on specific device families, and the applets for a Siemens or Nokia phone would commonly crash on a Motorola phone, and vice versa.

        • "Define "supported" and "Java apps". At the time, Java was even more fragmented than it is now. Java could mean all kinds of things, but the Java you found on a Motorola Triplets phone or its descendants (including the RAZR, which I owned two models of) was pretty mean."

          Nonsense. Between 2004 and 2006, Java was fully owned and developed by Sun Microsystems, and there were 3 versions: Enterprise Edition, Standard Edition and Mobile Edition (officially renamed in 2006 to EE, SE, and ME.

          The Razr supported ("supports", since I still have mine and it's still working) full standard Java ME, and anybody could get the SDK and compile programs for it. While some phones might crash ME programs, that's the fault of the phones that didn't properly support ME, not a problem with Jav

          • by pjt33 ( 739471 )

            There weren't just three versions: ME was far from homogenous. Most people think that J2ME is synonymous with J2ME CLDC MIDP. I spent 3 months in 2005 writing a computer-assisted interviewing app for PocketPC in J2ME CDC PP, which is closer to a cutdown J2SE than to CLDC MIDP; although I try to make it clear on my CV, I have to be prepared to explain it when I go for interviews.

          • The Razr supported ("supports", since I still have mine and it's still working) full standard Java ME, and anybody could get the SDK and compile programs for it. While some phones might crash ME programs, that's the fault of the phones that didn't properly support ME, not a problem with Java.

            Reading comprehension failure level: maximum. I didn't say it was a problem with Java. What I said is that those phones had shitty Java support. Since I've owned and hacked on the V300, V500, V555, the original RAZR and two of the later RAZRs and run dozens of different Java MIDlets on all of them, I am well-versed.

            But as for "define apps"... I don't get what you're trying to say. No, they did not have accelerometers or GPS or compass, because the phones in those days didn't have those features. But they could access things the phones DID have: buttons, screens, speaker, vibrator, etc.

            Yeah, and the other thing those phones did have, again speaking of those crappy Triplets phones and their descendants, was a very slow processor and very little memory. They weren't capable of ru

    • Yep, pretty much any language out there, from programming languages to spoken... is a mess.

  • isn't this what Adobe Air was supposed to solve-- write one client to rule them all?

    • Re: (Score:2, Interesting)

      by i kan reed ( 749298 )

      Adobe products are an interesting case of trying to solve systemic problems, and inevitably creating new, worse ones. Except photoshop. Photoshop is software that is just useful and nothing else.

      • Re:Adobe Air (Score:5, Interesting)

        by gaspyy ( 514539 ) on Friday January 31, 2014 @12:04PM (#46121029)

        I fail to see how AIR is a problem worse than Phonegap or what Chrome is offering right now as a wrapper over html5.

        Making a cross-platform game is world of pain, especially when you're small.

        I was able to make my chess game [sparkchess.com] available on web, as a chrome app, as a native app for PC, Mac and Linux and for mobile on iPhone, iPad, Android tablets and phones, even the now-dying Blackberry Playbook. The game is quite complex but 99% of the code is cross-platform, there are very few platform-specific lines.

        I've been considering porting it to HTML5 but the amount of work needed is too much for one man. The AI is straighforward (Javascript and AS3 are closely related), but porting the UI, the multiplayer code and then tweaking it to make sure it works with all major browsers is not something I'm looking forward to. With AIR I can keep my sanity and concentrate on features.

    • Pre-HTML5 it was. Steve Jobs killed it on his anti-adobe rant for the iPhone.

    • by JackAxe ( 689361 )
      AIR now days is excellent and has become a truly viable solution for mobile and desktop/web for pretty much any project. The best part, is that you can develop AIR apps without having to use Adobe's IDE Flash Builder, which has fallen to neglect on their part IMO. I use InteliJ IDEA for AIR( Android, iOS ), Java/Android, and all of my web dev. It handles ActionScript 3 like butter and has really streamlined the process of deploying to and debugging different targets.

      Adobe provides the AIR SDKs for fr
  • Schizophrenic (Score:4, Insightful)

    by uncle brad ( 1989490 ) on Friday January 31, 2014 @11:53AM (#46120909)
    I do not think it means what you think it means.
    • by Ksevio ( 865461 )
      Actually I think the problem is the author is imagining platforms that aren't used or don't exist and working to make his software compatible with it. Modern clients aren't too hard to use the same code for, but the imaginary ones can be a real hassle.
  • We can hire 25 Elbonian programmers to deliver on time and under budget! ... no, um, we call those "features" here.
  • Feeling insecure (specially after the NSA revelations) could be the cause of that problem.
  • by OzPeter ( 195038 ) on Friday January 31, 2014 @11:55AM (#46120939)

    I'm writing stand alone Desktop programs.

  • haxe language (Score:3, Informative)

    by submain ( 856941 ) on Friday January 31, 2014 @11:56AM (#46120959)

    That's why we need more people using languages like this: http://haxe.org/ [haxe.org]

    I discovered it a couple of months ago. It has its quirks, but not having to worry about rewriting your entire app for another platform is a blessing. And no messy VMs needed.

    • Wow, that's some ugly syntax for a modern programming language.

    • yet another language doesn't solve anything, the issue is one in the realm of managemnet

    • That's why we need more people using languages like this: http://haxe.org/ [haxe.org]

      It seems as if have seen a hundred new languages, all allegedly solving the problem of programming, and none of them succeeding. That's because the difficult problems are not at the level of syntax.

  • Nothing New (Score:5, Funny)

    by Akratist ( 1080775 ) on Friday January 31, 2014 @12:00PM (#46120995)
    Programming always has been, and always will be, a mess. There is a reason that maybe two percent of the people in the world can actually do this work -- the other ninety-eight percent are sane and don't think like psychotics locked in the Red Bull factory.
    • They're not locked in. They can leave at any time. They choose to stay.

  • by Tom ( 822 )

    omg, the world is complicated, the sky is falling and we're all going to diiieee!

    It's called "diversity", not "mess", and one of those days you'll be fucking glad that we have it, because otherwise, as me and some other researchers have proven ten years ago, in a monoculture one zero-day in the wrong hands means game over, Internet [lemuria.org] in something like a few hours.

    Be glad we have this "mess". It's going to save our collective asses one day.

  • by SuperKendall ( 25149 ) on Friday January 31, 2014 @12:06PM (#46121049)

    Perhaps you can run what you like on nearly any OS but...

    Do you use NoSQL? Relational?

    PHP? Some kind of CMS, or roll your own with Rails?

    Store content on AWS? Or some other cloud? Or just local?

    Or perhaps you want to simply use the Google App Engine or other systems like it, and have everything hosted without fuss... or rent an elastic compute server and run your own custom Erlang server.

    Not to mention you really can't run everything on every OS, as there are still plenty of Windows server specific technologies I didn't even mention but tons of people use.

    And you think server stuff is LESS fragmented?

    • I can answer one of your questions for you:
      PHP? Please, please don't. There's simply no good reason to use it, especially when there are CMS's in other languages that work at least as well as Wordpress, Drupal, or Joomla.

    • A server developer can be delusional and think their particular pet technologies are the only ones in the world and that *everyone* is on board. The target users will be non the wiser. About the only aspect that he calls out that is fairly fixed is the notion that *EVERYTHING* must be http based (which I hate, the http protocol was designed around certain usage scenarios and it is atrocious for a lot of uses but it gets shoehorned into them anyway).

      Meanwhile, on the client side, if you do want to hit 100%

  • by DdJ ( 10790 ) on Friday January 31, 2014 @12:18PM (#46121185) Homepage Journal

    IMHO, the ideal situation is, you define standard formats and protocols, and then you give everyone the freedom to use whatever technology they want to interoperate using those protocols.

    Want to write your mail server in Java? Python? Prolog? I do not care as long as it speaks IMAP. Want to write your mail client in C#? Objective-C? Ruby? I do not care as long as it speaks IMAP.

    Isn't this exactly how things should be?

    • Re: (Score:2, Insightful)

      Yeah, sure you want your mail server talk IMAP. SMTP on mail servers is so nineties!

      • DdJ was probably talking about the side of the mail server that stores received mail and presents it to the MUA, not the side that accepts outgoing mail from the MUA (SMTP AUTH) or forwards it to other mail servers (SMTP). Though the I in IMAP doesn't officially stand for incoming, you can think of it as if it did.
    • How would a custom protocol ensure that the the user sees the advertisements selected by the server? Or should server operators recover the cost of maintaining the server by charging users for the privilege to use third-party clients? I think that's part of why Slashdot hasn't implemented an NNTP gateway.
      • by DdJ ( 10790 )

        Ah, so it's a problem for the people with a specific business model that requires having precise control over both ends of the connection, making them fundamentally incompatible with openness and interoperability. Okay.

        Myself, I'm not very sympathetic, as I actively want to see those business models fail and get abandoned. But now I have a better understanding of why someone might dislike the situation. Thanks!

        • by tepples ( 727027 )
          So what business model should such a service use other than being ad-supported, especially in markets whose users have soundly rejected paywalls?
  • I only had to read far enough to see that he says you have to compile a web application three times, once for the browser, once for Android, once for iOS. His methodology is so broken that he's unable to comprehend the idea of a cross platform website.
    • You try using a web application that relies on WebGL, IndexedDB, Stream API, or file uploads (other than images or video) in Safari for iOS and see how far you get.
      • by Kremmy ( 793693 )
        If the platform outright fails to support the necessary underpinnings to run web applications, why are we talking about writing web applications for it?
        • Assume there is a web application that does not run on a particular platform. Assume further that there is a demand for that application on that platform, be it in the form of a web application or a not-web application. So how should this demand be served? Translating each line of code by hand into the platform's native language violates the principle of not repeating yourself [wikipedia.org], which introduces errors in translation and doubles development effort whenever someone makes a change to the original web applicati
          • The real problem is "what is a platform?" If a platform is sufficiently different from the other platforms then it ought to have programs rewritten for it (because they'll be different and therefore not repeated); if it is not sufficiently different from other platforms than it doesn't need to exist (in fact, the platform developers themselves violated the DRY principle).

            • If a platform is sufficiently different from the other platforms then it ought to have programs rewritten for it (because they'll be different and therefore not repeated)

              How are you defining "different" in light of the principle of separation of data from its presentation [wikipedia.org]? Desktop, mobile, and web platforms are all equivalent to the same linear bounded automaton and in theory should work with the same data model. In this respect, no computer "is sufficiently different". True, the view should be rewritten to take advantage of each platform's strengths. But because splitting an application such that the model runs on a server and the view on the client precludes offline opera

  • I've had to use a lot of different code/languages for my little Firefox Plugin [mozilla.org] and it's not that hard to keep up with. For the most part I can find libraries (I use Poco and QT) that do all the heavy lifting when I'm in C/C++. For my site [glimmersoft.com] a little jquery goes a long way.

    For the most part there's only minor syntax differences in modern languages anyway. It's all arrays, hashs/dictionaries iterators and if statements with a bit of gui programming.

    Heck, even the gui programming follows the same basic p
    • For the most part there's only minor syntax differences in modern languages anyway.

      For one thing, if I make a change to a program in one syntax, how do I propagate the change to corresponding programs in other syntaxes? Having to make the same change manually every time introduces violations of the DRY principle [wikipedia.org] that lead to errors. For another, management of resource lifetime differs. Some languages, such as C++ and CPython, use reference counting, which allows deterministic semantics for finalizing objects [wikipedia.org] and releasing their non-memory resources. Others use tracing garbage collection,

      • by rsilvergun ( 571051 ) on Friday January 31, 2014 @04:29PM (#46123599)
        I find the solution to that is lots of well organized libraries. I wrote an mp3 tagger and it compiles on Windows, OSX and Linux because I use Poco and QT for everything instead of writing it myself.

        I do give up some of the whizz-bang features of the language for the sake of keeping it simple, but my code base is the same on all 3 platforms.
  • by codemachine ( 245871 ) on Friday January 31, 2014 @01:01PM (#46121611)

    Client side can be made a bit less painful with Xamarin. You can use one language (C#) for all platforms, and share a fair bit of code between platforms.

    Of course you still need separate code to give a native UI on each platform, and different packaging to get the application out there.

    Gone are the days of being able to target Windows to get over 90% of the client side market. There is real fragmentation, and innovation is happening quickly. There are many benefits to this, but stability in client side frameworks is not one of them.

  • by Yew2 ( 1560829 ) on Friday January 31, 2014 @01:05PM (#46121637) Homepage
    I so hate when people confuse it with multiple personality disorder. And so do I!
  • Software patents are destroying software. I used to develop software. I'm glad I no longer do that because I don't want to deal with all the patent trolling going on. I watch friends who are still in the field, the news, etc and am so glad I'm not them. Time to kill the trolls. Patenting in general needs to be killed. It has gotten far out of hand.

  • So, there are only two kinds of software, eh?

    You've got your server software.

    And you've got your client software. And your client software is a mess.

    Wish I were in "IT" and could sum things up so succinctly.

    • yeah we're clearly doing it wrongly where I work, what with the database, middleware, infrastructure and proxy layers around the servers.

  • It was the other way round 10 years ago. Back in 2003 the dominant consumer OS was Windows, with more than 90% of all consumer computer interaction going through a PC running Windows. On the server side, you had Windows NT, Solaris, Linux and various other *NIX's. Nowadays the server market is much more unified, with either Windows or Linux dominating, and most server-side software is now tailored to one or the other, or both. However, the consumer market has changed considerably, with many new OSes and API
  • I do not think it means what he thinks it means. http://en.wikipedia.org/wiki/S... [wikipedia.org]
  • Client-side is a mess. Everything needs to be built (at least) three times, once for the web, Android, and iOS. In the browser you have to content with JavaScript, browser API’s,CSS, and rendering differences.

    if your application looks the same on a webpage as it does on a smartphone then YOU ARE DOING IT WRONG. Hell, if your application is on a webpage then almost assuredly, YOU ARE DOING IT WRONG.

    If you are writing a desktop, tablet, mobile or server-side application, you can use Qt to do it all.

    - desktop: OS integration, sound, graphics (transparently software or hardware based), multi-touchscreen support (for tablets)
    - mobile: Android/iPhone ports, multi-touchscreen support, direct display buffer access and

  • Open and mature client technologies have always been a threat to MS's core business.

  • by Casandro ( 751346 ) on Saturday February 01, 2014 @01:26AM (#46126645)

    http://lazarus.freepascal.org/... [freepascal.org]
    It just compiles to Linux, MacOSX and even Windows. And for all three you get a statically linked library. And in all three you get a native GUI with the GUI elements the user expects.

    I haven't tried Android or Windows CE support, but they are claimed to work.

  • by loufoque ( 1400831 ) on Saturday February 01, 2014 @05:01AM (#46127165)

    The article (which is shit, it's just the rambling of a web developer) says that you need to do development many times in different languages for each platform.
    Yet C and even C++, real programming languages and not toy or hipster languages, will actually work everywhere and can satisfy all requirements : client-side, server-side, iOS, Android...

You are in a maze of little twisting passages, all different.

Working...