Slashdot Mirror


The Schizophrenic State of Software In 2014

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."

40 of 209 comments (clear)

  1. common platform by Anonymous Coward · · Score: 4, Insightful

    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

    1. Re:common platform by ShanghaiBill · · Score: 3, Insightful

      Dude, you should definitely start programming in HTML5, I'm pretty sure it's exactly what you're looking for.

      Thinks that you can NOT do in HTML5:
      - Use local storage exceeding 5MB.
      - 3D graphics (WebGL is poorly supported so far)
      - Tilt and shake gestures
      - Device location and orientation
      - Audio recording
      - Camera
      - Text to speech
      - Speech to text
      - much more.

    2. Re:common platform by Grishnakh · · Score: 2

      - Audio recording: good in theory, scary in use. Having a web browser listing to your audio could cause ease dropping software.

      Yeah, so? If you want to write an application which records or manipulates audio, then this is a pretty important requirement. It just goes to show that this notion that all modern applications should be written in HTML5 is wrong. There's a lot of things you might want to do on your computer which just don't lend themselves to HTML5/Javascript/PHP/Java.

  2. Be Thankful by TrollstonButterbeans · · Score: 5, Insightful

    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?

    --
    Priest: "Universe from nothing, no laws of physics, sped up time"+ huge discrepancies. Creationism? No. Big Bang Theory
    1. Re:Be Thankful by Anonymous Coward · · Score: 4, Informative

      Java was an important programming language on phones in 2005.

    2. Re:Be Thankful by jythie · · Score: 2

      *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 towards a more mature consensus. So the OP kinda strikes me as having blinders on.

    3. Re:Be Thankful by sl4shd0rk · · Score: 3, Insightful

      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.

      --
      Join the Slashcott! Feb 10 thru Feb 17!
    4. Re:Be Thankful by unimacs · · Score: 3, Interesting

      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.

    5. Re:Be Thankful by TheBilgeRat · · Score: 2

      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++.

  3. Schizophrenic by uncle+brad · · Score: 4, Insightful

    I do not think it means what you think it means.

  4. Fear Not! by ThatsDrDangerToYou · · Score: 2

    We can hire 25 Elbonian programmers to deliver on time and under budget! ... no, um, we call those "features" here.

  5. Insensitive Clod by OzPeter · · Score: 2

    I'm writing stand alone Desktop programs.

    --
    I am Slashdot. Are you Slashdot as well?
  6. haxe language by submain · · Score: 3, Informative

    That's why we need more people using languages like this: http://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.

  7. Nothing New by Akratist · · Score: 5, Funny

    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.

    1. Re:Nothing New by MMC+Monster · · Score: 2

      They're not locked in. They can leave at any time. They choose to stay.

      --
      Help! I'm a slashdot refugee.
    2. Re:Nothing New by Akratist · · Score: 2

      Ironically, the only people affected by snark would be anyone with a normal level of self-esteem, which is typically not found in the coding world.

  8. Re:Adobe Air by gaspyy · · Score: 4, Interesting

    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 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.

  9. Server not fragmenting?? by SuperKendall · · Score: 3, Insightful

    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?

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  10. Re:What was the state of server side progamming? by jythie · · Score: 4, Insightful

    Well, there is consensus if you ignore detractors within your own community. I have noticed that companies where a particular web developer culture is strong tend to hire people who agree with the current development teams and exclude those who do not, so you rapidly get clustering that feels like consensus, but is really just group think.

  11. Re:A Simple Solution by Anonymous Coward · · Score: 2, Insightful

    I would, except the Web is the worst platform for delivering applications EVER.

    So-called "standards" are not consistently supported, even when they're not shifting under your feet... CSS, JavaScript, XML, etc. all hacked-together kludges to add interactive functionality to a medium designed for statelessly delivering static documents... broken security models, latency issues, content management systems that are more time-consuming and painful to use than just programming the damn site...

    I say scrap it and start over from scratch!

  12. How is this not ideal? by DdJ · · Score: 3, Insightful

    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?

  13. Deliberately missing browser features by tepples · · Score: 5, Informative

    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 with content types other than pictures and videos in Safari for iOS?

    1. Re:Deliberately missing browser features by Anonymous+Brave+Guy · · Score: 5, Insightful

      Operating system publishers leave features out of their browsers on purpose to push their proprietary native app platforms.

      Well, that and the fact that every technology in history that has attempted to offer native access and functionality to remote web sites has gone on to become one of the biggest Internet security problems of its generation.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    2. Re:Deliberately missing browser features by jellomizer · · Score: 4, Funny

      What do you mean, this was the point of ActiveX. ActiveX didn't cause any security concerns.
      It isn't like when someone is asked to accept to install something, they will just hit Yes, to get it out of the way.

      The Web isn't a good way to do high performance computing. The good news is, most people don't need high performance.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
  14. When a platform allows only one language by tepples · · Score: 2

    How can a developer "Just recognize you need to compile for different build targets" if one platform runs only Objective-C++, one platform runs only verifiably type-safe .NET CF bytecode, one platform runs only Java bytecode, and one platform runs only JavaScript?

  15. BREW by tepples · · Score: 2

    Java ME might have been popular in Europe. But in Slashdot's home country (the United States), I seem to remember that mobile phones were more likely to support BREW than Java ME, and BREW's digital signature policy blocked developers from self-publishing their applications. I'm told that trying to develop an app and get it approved for all the phones of all the carriers was at least as bad as trying to develop for a game console, and few companies tried.

  16. Re:Like slashdot? by tepples · · Score: 3, Informative

    Or refusing to let us link to a specific comment? (Pick any comment and try to come up with a link you can send to someone.)

    From the classic interface, try this:

    1. Look for a line like "by Okian Warrior (537106) on 2014-01-31 12:16 (#46121151) Homepage Journal".
    2. Right-click or long-press the comment ID (#46121151).
    3. Choose "Copy Link". (The wording may differ in your web browser.)
    4. Paste elsewhere.
  17. Change propagation; resource management by tepples · · Score: 2

    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 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 and releasing their non-memory resources. Others use tracing garbage collection, which requires finally clauses that are trickier to handle when a non-memory resource outlives the method that allocated it.

    1. Re:Change propagation; resource management by rsilvergun · · Score: 3, Insightful

      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.

      --
      Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
  18. Xamarin solves some of this by codemachine · · Score: 3, Informative

    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.

  19. XNA, iOS, and the web by tepples · · Score: 2

    Windows Phone 7 ran only verifiably type-safe .NET CF bytecode, and standard C++ isn't verifiably type-safe. Xbox Live Indie Games on Xbox 360 was the same way. The only language that was really usable on WP7 and XBLIG was C#; other languages required unsafe constructions (forbidden by the platform's policy) or the DLR (not present in the Compact Framework) or both. Java ME phones ran only Java ME bytecode. For a few months, iOS ran only Objective-C++ as a measure to fight the use of Adobe AIR, though Apple removed this restriction after it started to affect games' scripting. And of course, someone developing for the web platform can use any language he likes as long as it's JavaScript.

  20. PLEASE LOOK UP SCHIZOPHRENIA by Yew2 · · Score: 4, Funny

    I so hate when people confuse it with multiple personality disorder. And so do I!

    --
    will work for dragon quest localization
  21. Incoming mail access protocol by tepples · · Score: 2

    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.

  22. I don't get it. Why do you think that learning by Anonymous Coward · · Score: 2, Interesting

    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 a database to a user interface. Yawn. Barf.

    No wonder fewer people of quality, especially women, eschew CS/IT. it is a horrible, soul-deadening area to work in.

  23. Re:Adobe Air by gaspyy · · Score: 3, Informative

    SWF was amazing for its time. Streaming vector animation with synced sound over modem speeds. Even today you need a hodge-podge of technologies - SVG, Javascript and a bunch of libraries to achieve what you could do 17 years ago! And I'm not even sure you can stream a svg animation+sound.

    SWF has 2 shortcomings:
    - it's proprietary
    - it doesn't integrate seamlessly with its environment (browser).

    For standalone apps, these are not big issues.

  24. Swings and roundabouts by The123king · · Score: 2

    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's joining the party, including all the smartphone OSes from Android to iOS to webOS to Windows Phone 8 and it's associated Metro interface and API's. Software hasn't become schizophrenic, it's always been like that

    --
    If you gave me a choice between a printer and a giraffe with explosive diarrhoea, i'll get my ladder and my raincoat
  25. Re:Adobe Air by JackAxe · · Score: 2

    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 free without any sign-up and if you don't mind signing up with their EVIL Cloud service, their profiler Scout is available for free as part of the Gaming SDK. The Gaming SDK also includes open source frameworks like Starling and Away3D. And despite being called a gaming SDK, these are for the most part vanilla frameworks that will let you build anything -- but of course favor game dev -- and they can all be downloaded separately from GitHub.

  26. Schizophrenic, he keeps using this word... by unamanic · · Score: 2

    I do not think it means what he thinks it means. http://en.wikipedia.org/wiki/S...

  27. For GUI stuff: Lazarus by Casandro · · Score: 3, Informative

    http://lazarus.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.

  28. C and C++ work everywhere by loufoque · · Score: 2

    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...