Slashdot Mirror


Staying On-Top of Programming Trends?

GhettoPeanut asks: "Trends are constantly changing, upgrading, or become popular due to high end user demand or just basic usefulness. I do my best to keep up with the trends, believing that for the most part they will be better then the current methods in place, or just comfort in knowing that if enough people use it, that there will be allot of help out there. Ultimately though, its keeping up with these trends and trying to figure out what's a fad versus what's actually useful that's the difficult part. What do some of you do to keep up with the trends? Websites? Magazines such as Dr. Dobbs? Forums? I know there's not one solve all, but for the sake of argument, suppose you wanted to stay on the forefront of Java based web development, what would you do?"

44 of 191 comments (clear)

  1. Well... by packetmon · · Score: 2, Funny

    suppose you wanted to stay on the forefront of Java based web development, what would you do? I'd make sure I worked near a Starbucks that never closed while I worked on my Geocities website. Java owns you

  2. Four things: by Avillia · · Score: 5, Informative

    1. Other programmers I know in various fields. I happen to know quite a few.
    2. The plethora of content Sun, Java, MySQL, Microsoft, Oracle, and many other high-profile "framework sponsors" push out on various developer networks, such as MSDN, DevZone, OTN...
    3. Whatever the hell O'Reilly is making books about.
    4. Seminars and conventions, often made/endorsed/branded by computer publishers such as O'Reilly and aforementioned "framework sponsors".

  3. Recommendation: by Black+Parrot · · Score: 4, Funny

    I've really enjoyed 1001 Buzzwords for the Entry-Level Programmer.

    --
    Sheesh, evil *and* a jerk. -- Jade
  4. Ignore them... by ResidntGeek · · Score: 4, Insightful

    This isn't what you asked, but you shouldn't follow trends, you'll just end up with a little knowledge of everything. Just concentrate on C or C++ for *NIX (or something similarly consistent) and you'll eventually be a guru, able to do anything you wish with it.

    --
    ResidntGeek
    1. Re:Ignore them... by SeeMyNuts! · · Score: 3, Interesting

      "Just concentrate on C or C++ for *NIX (or something similarly consistent) and you'll eventually be a guru, able to do anything you wish with it."

      See, here's a problem. Most CS instructors will cram down students' throats that if they concentrate on principles they can pick up any language/platform as if it's nothing at all. It's a lie, but that's what they say. This is where this "Ask Slashdot" is coming from--an idealized mindset leading to severe programming attention deficit disorder.

      When I was a programmer full time, I tried to ignore the covers of magazines, knowing that it's just hyped up B.S. However, my co-workers would be drooling over whatever Java database framework was released that week (everyone and their uncle was writing Java frameworks!!!) and end up with some twisted mess of undocumented APIs and un-debuggable problems. It was awful. Couple that with high turnover and whole projects would just get flushed and re-done from scratch (again, done badly...perhaps they found a real money tree and didn't tell us?).

      Oh, and trash the UML! Simultaneously with writing terrible software, everyone was on some sort of UML pilgramage to Software Engineer Paradise somewhere. Barf!

      I would have been in programmer heaven to just do it all in C and /bin/sh, if only to have a platform that someone on this earth documented and understood without v0.00001 APIs and pretty UML pictures that meant absolutely nothing without minutes of explaining.

    2. Re:Ignore them... by mrchaotica · · Score: 3, Informative
      Most CS instructors will cram down students' throats that if they concentrate on principles they can pick up any language/platform as if it's nothing at all. It's a lie, but that's what they say.

      Actually, it's not a lie. I'm a CS undergrad at GA Tech, and from classes I have experience in Scheme, Java, C (with UNIX), and Smalltalk. Anyway, I got a job this summer programming in a C++ .NET and ObjectARX environment using Visual Studio, even though I had absolutely zero prior experience with any of it.

      Long story short, it took me about a week to figure it all out. It was cake.

      They're planning to migrate their whole program to C# soon; I figure learning that language will take me about a day and a half.

      --

      "[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz

    3. Re:Ignore them... by illuminatedwax · · Score: 3, Insightful
      The C++ specification book (Stroustrup) is a thousand pages and very densly written.

      And contains tons of stuff which is meaningless to memorize. .NET is the same way, too. Who needs to know all of the subclasses and methods of some obscure function? If you know the general concepts of how computers work, you can apply it to anything, leaving the specifics in the manual when you need them. Having the concepts means you know where to look.

      "I say now, as I said then, that a man should keep his little brain-attic stocked with all the furniture that he is likely to use, and the rest he can put away in the lumber-room of his library, where he can get it if he wants it. --Sherlock Holmes
      --
      Did you ever notice that *nix doesn't even cover Linux?
    4. Re:Ignore them... by JohnFluxx · · Score: 4, Funny

      Tell me about it. At my school they tried to get me to learn how to add two numbers together! I tried to explain that a calculator can do it, and therefore my time was being wasted in learning, but unfortunately that didn't go over so well.

      Now, I have no school education, but I do have a fairly decent job NOT reinventing the wheel.

    5. Re:Ignore them... by Jerry+Coffin · · Score: 3, Insightful
      Everything is cake when you are an undergrad, and one week's or even one summer's experience with C++ and .NET is just scratching the surface. The C++ specification book (Stroustrup) is a thousand pages and very densly written. .NET is enormous and also takes a year to years to master. The best thing you can do during the summer job is learn from the more experienced people working there (their methods, working with the customer/management, etc.). The programming aspects of the job mainly just bolster the buzzwords on your next resume and provide talking points during interviews.

      While you make some good points, you also have a couple of mistakes there. First of all, it's been quite a while since any of Stroustrop's books was really the C++ spec. Anymore, the spec. is the 2003 edition of the C++ standard (aka ISO 14882), and before that it was the 1998 edition of the same. Oh, and FWIW, while it's certainly densely written, it's less than 800 pages long. :-)

      .NET is huge, but that's not necessarily very closely related to the time it'll take to master it. In fact, I'd almost go so far as to say that .NET simply isn't oriented toward toward what I would normally consider real mastery. At least from my viewpoint, it's a rather "flat" library -- very large, but not a lot of real depth. Most of the functions just "do what they do", and that's the end of it. To a large extent, "mastery" is mostly a matter of sufficient familiarity that you can quickly find the functions you want/need at any given time.

      That's a direct contrast to, for example, the Boost Library or the Loki Library, which are a lot smaller, but a whole lot deeper. Here much of mastery is simply wrapping your head around some of the concepts involved. A few people accustomed to Lisp, Scheme, Ocaml, etc., may already be accustomed to some of them, but most typical programmer have never even considered doing the kinds of things it covers (and even the Lisp crowd is likely to find a fair amount of it somewhat challenging as well).

      To put that contrast a bit differently: if you were accustomed to Java (for example), using .NET would mostly mean learning different names for classes and member functions, but the classes and member functions would still be on the same order as you were used to (a bit cleaner in some places, a bit grungier in others, but ultimately the same general kind of thing). By constrast, either Boost or Loki is much more likely to cause fundamental alterations in how you think about and solve your problems.

      --
      The universe is a figment of its own imagination.
    6. Re:Ignore them... by 1iar_parad0x · · Score: 2, Insightful

      It's not hard to pick up a book/documentation on a new langauage and start writing code. However, it is difficult to design an application effectively without knowing something about the language. Could I design a large scale C++ app effectively if I were a Java or Perl guru? Would you want some crusty old engineer with years of embedded systems experience and C++ skills designing a large scale J2EE database app. You take for granted the complexities of the software engineering process when your part of a team. Incidentally, if you think you can tackle a small project with a new language and not make some mistakes, you're only kidding yourself.

      --
      What do you mean my sig is repetitive? What do you mean my sig is repetitive? What do you mean....
    7. Re:Ignore them... by Zwack · · Score: 3, Interesting

      And you think that you are joking...

      In my Undergraduate Physics course (My first degree) my calculator broke just before class one day. Half way through the class the guy sitting next to me realised that I was only six questions into the problems we were doing when he was on question twelve. This is because I was doing all of the long divisions (six plus digit numbers) by hand while he was using a calculator. He was surpirsed that anyone could even do that...

      Z,

      --
      -- Under/Overrated is meta-moderation, and therefore is Redundant.
    8. Re:Ignore them... by readin · · Score: 3, Insightful

      The problem with this approach is that you can't look up what you don't know is in the book. You may know enough .NET to do your job, you can code anything you need to, and if you suspect something already exists you can look it up. But what about the code that's been written that you don't know exists? One of the advantages of great experience with a language is that you already know that certain things are available. Another advantage is not having to take time out to read up on something because you haven't used it before. Hand in hand with that is already knowing the quirks and crannies that someone who just skims the documentation may miss or that may not be documented at all.

      --
      I often don't like the choices people make, but I like the fact that people make choices. That's why I'm a conservative.
  5. Mono? by headkase · · Score: 4, Informative

    I would suggest Mono as an important project. As Microsoft designed it, .net's common language runtime can be targeted from practically any language. .net is equivalent to a standard virtual machine that provides a standard environment (duh). By allowing code to leverage other code and perform this work independent of any particular programming languages they've created a large developer base that can easily be ported to Linux via Mono.
    8^p

    --
    Shh.
  6. Read and Succeed by Unoti · · Score: 5, Insightful
    Two key thoughts to share: Read, Succeed.

    Read

    First, you need to read a lot. Dr Dobbs, MSDN, developer blogs, books. To separate fad from rad, I recommend you use your own common sense.

    For example, a few years back I worked hard to learn and understand the Unified Process. There were a lot of great ideas in there, but I felt it was too heavyweight and over the top for what I was doing. But I did feel it had brilliant ideas and revolutionary concepts. So I took what I thought were the most practical ideas and used them. The most important ideas I took were things like 1) throwing out the waterfall approach and developing iteratively, testing and "releasing" after each iteration, 2) identifying the biggest show-stopper risks up front and doing research to make them not so scary, 3) getting the customer/end user involved up front and through the whole process. A lot of people might shoot me for saying this, but it turns out that the Unified Process was pretty much a fad, and those key concepts turn out to be the foundation for "Agile Development" and "Extreme Programming."

    The point is, read and study anything that interests you, and decide for yourself what's useful.

    Succeed

    Second, you need to do stuff to get success stories you can tell when you're interviewing or selling yourself to your current employer. A lot of book knowledge doesn't do diddley if you don't put things in the done basket. Ever see people at work with dozens of spiffy certifications that can't code their way out of a paper bag? Don't be like that. Do lots of stuff and do it successfully.

    I recommend you work on anything you have some passion for, even if it's not directly work related. For example, I did a lot of 3D programming when I was working as an Oracle PL/SQL developer. Totally unrelated to work. But I honed my OO skills, learned OpenGL and DirectX, learned a lot about 3D math. Although it took a while to pay off, all of it did eventually pay off. Knowledge of C++ helped me answer tricky STL interview questions, and I later got a job with a company that makes interactive 3D training software for jet mechanics-- way cooler than Oracle. And even though this wasn't work-related, I was able to include that work in my list of success stories I could tell potential employers and other people making decisions about me.

    So do whatever you have a passion for, and do it successfully and to completion.

    1. Re:Read and Succeed by bladesjester · · Score: 2, Insightful

      I enjoy programming and I like learning new things, but I do not want to spend every waking moment focusing on new trends in software development.

      There are those of us who really do like what we do, but still consider it a job and want to do other things besides on our free time.

      --
      Everything I need to know I learned by killing smart people and eating their brains.
  7. Pick a language by wildman6801 · · Score: 2, Informative

    Pick a language and learn it to your best: I would suggest a language like Java or C, C++. The more you learn about your langauge that you choose the better you will get at it and the more you will be in the trend. I started learning C++ back in college and I use it. I learned it very well and I keep up to date with it changes.

    --
    A site cowboyneal will like http://www.freewebs.com/atpa/
  8. Immerse yourself in RSS feeds by smug_lisp_weenie · · Score: 3, Insightful

    Set up an RSS reader like reader.google.com or bloglines.com, then find a bunch of RSS feeds that cover that domain in some fashion. For Java, for instance, you can find some feeds here.

    The key is that that it's really quantity and regularity that's most important- If you spend a little time each day immersing yourself in the terminology you'll start to get a feeling of who has the most credible opinions in that field and what those persons are excited about (so eventually you'll have quality covered as well).

    There's a good chance that this will, of time, allow you to spot patterns and predict technology trends.

  9. Trends? Um, no... by StarWynd · · Score: 3, Informative

    Your focus shouldn't be on tracking and staying on top of all the trends. It should be about finding ways to be more efficient and more productive with what you're already doing. Occasionally, I will accidentally run across a cool new tool or framework that's useful, but most of the time I have to go looking for it myself. If you find yourself saying "Surely there's a better way," someone else has probably said the same thing. And while you could scan books or search online for the answer, talking to someone else who has experienced the same thing is probably your best bet. Get involved with a local user's group for whatever language you're developing in. Ask questions, show up at the meetings and contribute back to the group. It's still good to track new trends, but this should be secondary. Just subscribe to a tech magazine or two or maybe watch some of the RSS feeds from sites that pertain to your work, but your best resource is the rest of the community.

  10. Slashdot by Alric · · Score: 3, Informative

    Honestly, being a regular on slashdot will keep you pretty current on the latest fads in the industry. For a specific technology, I recommend finding a few experts or "thought leaders" in that field who have blogs and reading whatever they're reading.

    Also, as others will say ad infinitum, focusing on the basics is much more important than trying new fads or styles.

    1. Re:Slashdot by Bjarke+Roune · · Score: 2, Funny

      > Honestly, being a regular on slashdot will keep you pretty current on
      > the latest fads in the industry.
      >
      Yeah, especially if they have something to do with Google.

  11. Don't limit yourself to Java by Anml4ixoye · · Score: 4, Insightful

    The best advice I have heard was from I believe Martin Fowler who said to learn a new language every 6 months. So, instead of learning the differences between JSF and Struts, pick up a Rails book, or Python, or Boo, or Lua. (Except if part of your job is figuring out the differences between JSF and Struts)

    Several of my coworkers attended JavaOne, and while I would have liked to have gone, I'm much happier going to Agile 2006 where I will get exposed to a wider variety of things going on. For example, if you haven't tried Rails, it is a great way of seeing how using sensible defaults can get something up and running quickly, and how extension can keep it maintainable as it grows.

    Same thing with ASP.NET. The event model for web pages is really great, and I've built some neat apps in ASP.NET which let me use some of the cleanest MVP seperation possible.

    So, if you want to know more about Java, pick up some other languages. You'll find yourself wanting to do even more.

  12. learn fundamentals by Anonymous Coward · · Score: 4, Interesting

    Learn general fundamental stuff first.

    Like: LISP, the relational model, etc.

    Then after a while you'll notice that most everything is a subset of something that's already been invented, but with a different name, or a different syntax, or a different "marketing angle".

    Ruby? Python? Different subsets of Lisp with more interesting syntax.

    Ajax? A more complicated way of doing client/server communication.

    SQL databases? Kinda like a relational database, but simpler.

    Object databases? Take the relational model and add a large number of constraints, tada, there's an OO database.

    FreeBSD vs. Linux? Mostly the same.

    You might also become quite bitter and annoyed with the IT industry after a few years.. try not to take it out on others. :-)

    But seriously, concentrate more on what make things ALIKE. Vendors and people who haven't been in the IT industry very long will try and convince you that what they have is revolutionary and exciting, etc. They'll try and ridicule your "old-fashioned" view of whatever it is. Just smile politely and try and apply your existing knowledge with the syntax or the pretty face of "their" technology.

  13. Ignore it. by jlarocco · · Score: 4, Insightful
    I know there's not one solve all, but for the sake of argument, suppose you wanted to stay on the forefront of Java based web development, what would you do?"

    Shoot myself.

    More seriously, trying to stay up to date on every new trend is pointless. You're better off picking a few things and learning them well.

    1. Re:Ignore it. by MobileTatsu-NJG · · Score: 3, Interesting

      "More seriously, trying to stay up to date on every new trend is pointless. You're better off picking a few things and learning them well."

      Seconded. When I was in high school I took whatever programming classes I could get into. I started with Basic and moved on to Pascal. That gave me some good fundamentals to work with. When I entered the work-force, I found myself scripting quite a bit for Lightwave. (For the uninitiated: Lightwave is a 3D program commonly used in television effects.) Recently we've been using Maya a lot more. I was able to shift over and start writing scripts for it. Why? Lightwave scripting gave me the experience I needed to know what I'm looking for, so when it came time to use another language, I had what I needed to get going fairly quickly. This has even spilled over into writing a little bit of PHP code and so on.

      I took the scenic route here, but yeah, develop a solid skill, and when you need to move into another language it'll go pretty smoothly. I was involved in the process of hiring engineers and we had a number of applicants who were dabblers. "I know OpenGL!" "Great! What have you done with it?" "I made a box rotate on the screen! (It was really hard!)" "Okay, so what's your expertise?" "..." We didn't feel comfortable hiring those people because we had no idea where they would have been best suited. Jack of all trades, master of none, yadda yadda yadda.

      --

      "I like to lick butts!" by MobileTatsu-NJG (#32700246) (Score:5, Informative)

  14. Be good at what will always be needed. by triskaidekaphile · · Score: 4, Insightful

    I know Java very well, but my true strength is in design. It doesn't matter what languages come and go, those skills will always be useful.

    Learn good communication skills so others will think you are competent. Even if you aren't.

    Learn persuasion skills so you get good compensation.

    Prepare side interests that you can ramp up into money-making ventures in a few months. If your company folds, you get laid off, or you decide to retire (or just plain quit) and the job market sucks, you at least have an avenue to pursue.

    --
    @HbFyo0$k8 tH!$
    1. Re:Be good at what will always be needed. by Atario · · Score: 2, Insightful
      Learn good communication skills so others will think you are competent. Even if you aren't.
      And, remember, writing is communication. In fact, it's a form of communication that lingers on long after you've forgotten about it, making you look smart or stupid, as the case may be, the whole time.

      My point here, of course, is that the submitter's summary is chock-full of screwups.

      GhettoPeanut, please: the language you should be working on is not Java or Ruby or SuperDuperCPlusPlusPlus. It's English.
      --
      "A great democracy must be progressive or it will soon cease to be a great democracy." --Theodore Roosevelt
  15. A blend of sites. by shoolz · · Score: 2, Insightful

    I don't think what you're looking for exists!

    I find that I generally have a good idea what's going on by frequenting /. and many other geekly news-aggrigator sites. I keep my ear to the ground and keep track mentally of how often new programming/tech buzzwords get kicked around. I investigate every technology on a high-level, and when I see a new trend emerging that seems to offer a solution that nothing else has so far, get involved on a granular level. I make my own decisions based on what information I can gather.

    Bottom line is, to use your example, if you were looking for what was going down on cutting-edge Java, you would simply spend a good portion of your time researching Java. But the point I'm trying to shoehorn in here is that to stay on edge, you have to be on edge. Which means investing time and researching and *actually* knowing what's going on. Otherwise you'll remain a tool to the hype-machines that have felled so many good programmers / managers.

    Sorry... I wish I could give you the "visit site X" answer that you're looking for. I really do.

  16. Re:lol, java by Anonymous Coward · · Score: 2, Funny
    LOL! U R TEH FUNNY!!!

    1998 called, and they want their troll back.

  17. Look at C++/CLI by Tarydon · · Score: 2, Informative

    The C++/CLI language looks interesting. You can download the spec from http://www.ecma-international.org/publications/sta ndards/Ecma-372.htm. Yes, it is Microsoft grown, but they seem to have some good people on the design team (Lippman, Sutter) and it's nothing at all like the mess that Managed C++ was. It's worth looking at if you want to keep abreast of 'current trends'.

    1. Re:Look at C++/CLI by Mr.+Feely · · Score: 2, Interesting

      Ugh. I don't denigrate the talent and effort that went into C++/CLI -- it is a valiant (and largely successful) effort to integrate the CLI programming model into C++. But it buys little expressive power over C#, at the cost of a much more complex syntax. Unless you're a language fanatic or are looking to create a CLI interface to unmanaged C++, you'd be best off avoiding it entirely in favor of C#.

  18. In a nutshell... by SoupIsGood+Food · · Score: 4, Funny

    1) The biggest news in Java is that you don't have to program in Java anymore. Popular languages like Python, Ruby and Eiffel(HA! Loser.) have all been ported to the Java VM, and have access to to the Java libraries, in addition to the Python/Ruby/OCaml(HA! Loser.) libraries.

    2) You will only ever need to know Java, Ruby or Python to make it as a Web Programmer.

    3) RoR is teh hawt. On the Java side, knowing Spring, Hibernate, struts, jUnit, JSF and (hold your nose) Beans will get you far. Python? HA!

    4) Python was in, now it's on its way out. Python geeks can keep the perl geeks warm when it snows. Take comfort, the Ruby guys will be there to huddle up with you in five years. PHP guys don't get paid, but will be wanted by people who don't like to pay programmers.

    5) C++. How quaint. You must have come from the game programming field. Perhaps you should go back there? We sure as hell don't want you. Go and keep the LISP guy company at the geezer end of the bar.

    SoupTellsItLikeIt Is

    1. Re:In a nutshell... by colmore · · Score: 2, Interesting

      PHP was a a great little language for little webapps. Web programming has become about a lot more than validating forms though, it's limitations have become a little too obvious.

      Perl had a killer head-start because in 1996 nobody did CGI like Perl did CGI. But Perl is s system glue language. It's a mighty system glue language, and there will always be work for Perl gurus, since all those custom scripts holding the infrastructure of every Unix shop on earth together are always going to need maintanence and updating. But as a glue language, it's a little sticky for web development.

      I was never taken with Python, it's got some great ideas, and a really well optimized interpereter, but there's just too much hand-holding, and it doesn't do OO. Python's brief success was a result of frustration with Perl.

      Java is all about huge teams. Namespaces namespaces namespaces, and all that. I can't say much, I was never a CS student, and my idea of fun isn't being a cog in a 50 person, 18 month project. In my experience, development starts to factionalize once you've got more than 5 people working, and suddently you need an -ugh- project manager. I like a small team where everyone trusts everyone else, everyone is looking over everyone's shoulder fixing each others problems, and SVN is sufficient for keeping you off each others toes. In that kind of environment Java is just overkill.

      Ruby is succeeding because it's learned the lessongs of Java: it's all about the frameworks. With absolutely *beautiful* syntax for everything from polymorphism to lambda functions, and an intelligently lax approach to syntax and typing (rather than statically type, treat absolutely everything as an object, and make it easy for objects to pretend to be one another) it's easy to write powerful frameworks that feel like extensions to the base of the language.

      This could be dangerous of course, if they were to approach development like Sun's warring houses, but the Ruby community seems to be rabid about keeping things clean, simple, and consistant.

      Hype is hype, and I'm always wary of it, but Ruby is just so niiiiice. I'm not sure if Rails will be around in 5 years, but I'm pretty sure that Ruby, and something related to Activerecord (the independant database abstraction class that Rails is built upon -- really check it out, it's simultaneously absolutely minimal and perfectly sufficient, you'd think it was running on Swiss cams and gears rather than code) will be.

      --
      In Capitalist America, bank robs you!
  19. C/C++ by SirSlud · · Score: 2, Insightful

    Thats it. Know how to program in C/C++ and you will find a job.

    What it really comes down to is knowing your data structures, knowing how much memory you're using, knowing how brutal your algorithms are, knowing the time to add/remove/find elements in your structures, and once you know C/C++, everything is a cakewalk. Seriously. Jesus I still wish I was doing web programming, where wasting massive cpu was okay. Learn C/C++ and find a job where you need to keep things speedy like games or web servers that need to deliver massive amounts of requests per second. Spend 2 years doing that, and you'll need and know everything you need to know for a career in programming.

    --
    "Old man yells at systemd"
    1. Re:C/C++ by Viol8 · · Score: 3, Interesting

      I think he was probably refering (correct me if I'm wrong grandparent poster) to that
      bloatware that is used to run web apps these days (Hello IBM , are you listening?) and
      not necessarily the coders themselves. Though IMO web programming is a bad place to
      learn how to code , even java , since you don't have to worry about memory management
      etc you can program somewhat sloppier than if you had to do C or C++.

      In fact I'd go so far as to suggest that ALL coders should do at least a few months
      of C (not C++) or even assembler coding so they get a real feel of what really goes on
      with memory, cpu, interrupts etc and so a better feel of how a computer really works.

  20. Java Posse by akuzi · · Score: 3, Informative

    > Suppose you wanted to stay on the forefront of Java based web development, what would you do?

    To keep up with what's happening in the Java world, I'd recommend listening to the excellent Java Posse podcast and as well as reading The Server Side.

  21. Read Slashdot by wysiwia · · Score: 5, Insightful

    Read Slashdot of course!

    Yes. Slashdot has quite a reputation for attracting knowledgeable people, yet be aware that some are rather biased towards OpenSource. And don't forget that people who do OpenSource (me including) have a rather absolute opinion. So as long as you are a little sceptic you should be able extract the trends.

    As you mention Java you may well notice that currently any Java discussion always tends toward flame wars. Flame wars are always signs that something isn't good, that the there isn't an uphill trend. Flame wars always arises when the future (a trend) isn't going as wished.

    I'm probably much biased but IMO the future trend in software development is "cross-platform". So far for many years you could do resonable cross-platform development only with Java. Today you can equally well do cross-plaform development with AJAX or with wyoGuide (binary applications, http://wyoguide.sf.net/). So regardless which of the different technology takes the lead, cross-platform development will increase to the point where single-platform development won't be accepted.

    O. Wyss

    --
    See http://wyoguide.sf.net/papers/Cross-platform.html
    1. Re:Read Slashdot by wysiwia · · Score: 2, Insightful

      Ok, so call me an un-trendy old-fart. Let's see ..... a quick review of my resume since

      1980, when I first became a programmer .....

      I wrote my first Fortran program in 1974 and it work fine on an IBM computer and a few years later on a Digital PDP-11. Albeit it was my first cross-platform code, there's no way to sell it these days.

      ... that languages are not, nor have they ever been, nor will they EVER be, a magic bullet.

      Languages were never the problem and even for the same task several different languages could be used. But you can't expect users to enter countless numbers on a console or copy back the resulting numbers. So even if you code a simple square root function you have to code a GUI around which is many times more code than the function itself. Yet if you want to sell your function depending on its kind users expects sufficiently good look&feel.

      O. Wyss
      --
      See http://wyoguide.sf.net/papers/Cross-platform.html
  22. User Demands? by Fulcrum+of+Evil · · Score: 2, Insightful

    Trends are constantly changing, upgrading, or become popular due to high end user demand

    Why the hell should users care what language their stuff is written in? They're USERS!

    --
    "We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
  23. Mastering it will take a lot longer by grahamsz · · Score: 4, Interesting

    I figure learning that language will take me about a day and a half.

    True, C# isn't a hard language to learn. I find it a little disjointed as I'm primarily a Java guy, but it's simple to understand.

    The problem with C#, or indeed Java, is that the API and associated frameworks do so much for you, but take a long time to master. Some of my early Java code is needlessly verbose because i simply didn't know that the API made certain functionality available. Now that i'm competant in a small number of frameworks and have better learned the development tools, i find i can work a lot faster.

    It doesn't take long before you become so used to the framework that programming in C or asm seems like reinventing the wheel.

  24. books by devonbowen · · Score: 2, Informative

    My algorithm is to read Slashdot regularly to look for things that I haven't heard of (usually in the comments, not necessarily articles). When I see a new language or methodology that seems to have a few positive comments written about it, I find a definitive web site and download some pdfs, do some tutorials, or go to O'Reilly and read a book about it (a Safari subscription is nice for this). It works well. It takes some time and effort but I end up with in-depth knowledge (not just buzzwords) about pretty much everything that is relevant. Magazines and such are a total waste of time.

    Devon

  25. No tricks, just consistent hard work. by porsche911 · · Score: 5, Informative

    1. Plan on studying something new every 12-18 months.
    2. Don't just concentrate on technologies. Study Project Management, Emotional
        Maturity, Presentation skills and public speaking. Think of yourself as an
        investment, you want to hedge your down-side by making sure you have skills
        completely outside the particular situation you are in at any given time.
    3. Review yourself every 6 months or so. Are you stuck in a learning rut, continuing to
        read the same types of junky "Visual Basic in 21 nanoseconds" or are you actually
        challenging yourself?
    4. Review the basics every so often. Go back and read a deep book on analysis of
        algorithms or databases or language design.
    5. Try to push yourself out of your comfort zone every few years.
    6. Don't get too hung-up on the buzz-word du jure. 90% of them will last a millisecond
        in your career.
    7. Treat everyone you come into contact with as a teacher.

  26. A Timeless Way of Building by Sigfried · · Score: 2, Interesting

    Few IT people, even those who understand Patterns methodology, have ever read the original works by the architect Christopher Alexander. His book A Timeless Way of Building is a masterpiece of design philosophy, that describes the Way of building anything, from a single chair, to a house, a neighborhood, a city, a program, a world, or even a life. Shut down your browser, skip a couple of RSS feeds, and take the time to read this charming little book. My two cents.

  27. Programming trends by ArmpitMan · · Score: 5, Informative

    You want to know the latest trends for Java-based web development? Fewer and fewer people are going to be doing Java-based web development in the future.

    Fuck trends. They're wrong. Every day the industry continues to stay with its current ridiculous technologies when vastly superior ones were invented decades ago infuriates me further. If it doesn't infuriate you, you're not paying close enough attention.

    My advice: read Lambda the Ultimate and Steve Yegge's blog. Endeavor to learn what the lambda calculus and referential transparency are. If you are sincerely interested in bettering yourself as a programmer and don't go find out who Alonzo Church was then so help me God I will kick you in the balls. Learn about SML and type inference. Learn about Haskell and monads. Learn about process calculi and Erlang. Learn about Lisp and code generation and domain-specific languages. Learn about Scheme and lexical closures and continuations. Learn about Smalltalk and what OO was really supposed to be. Learn about type theory and formalism and the Curry-Howard correspondence. Learn about Forth and Joy and how you can have a powerful, expressive language without even so much as a grammar. Learn about Intercal and Befunge and just how badly your choice of programming language can torture you. Learn about UML and Ruby on Rails and Seaside and agile programming and Java generics and Python generators. Learn about aspect-oriented programming, context-oriented programming and concept programming. Learn about multi-paradigm languages like OCaml or Oz. Learn about weird Lisp dialects with syntax like Rebol or Dylan.

    Realize that library design is language design. Realize that asynchronous programming with callbacks and explicit state in a world where lightweight coroutines were around in the days of fucking Simula in the 60s for Christ's sake is cruel and unusual torture. (Sorry, pet programming construct.) Realize that the programming language research community, while considering systems programming a solved problem and generally not interested in talking about human factors, is doing some genuinely promising work. Did you know that there are conc

  28. Don't Follow by tedgyz · · Score: 2, Insightful

    In general, avoid the trends. Stay away from magazines - they are the greatest purveyors of trends. I generally wait until the technology has matured. It will either die on the vine, or fix the most annoying issues. For example, early versions of JSP were pretty horrible, but now it is the cornerstone of the web apps that I build.

    Boring anecdote: I am glad that I fended off the EJB hype. Now, most of the industry has realized what I suspected all along - EJBs are mostly useless and usually create more problems than they solve. About 5 years ago I had a technical manager that insisted we use EJBs for all our new development. I resisted the best I could. One engineer on the team even proved that for database access, the EJBs were 10x slower. The manager didn't seem to care. We ended up putting in enough EJBs to satiate his mandate, but mostly avoided them like the plague. EJB == Extra Java Bloat

    --
    "No matter where you go, there you are." -- Buckaroo Banzai