Forgot your password?
typodupeerror
Programming Technology

A Dev Environment for the Returning Geek? 156

Posted by Cliff
from the welcome-back dept.
InsurgentGeek asks: "I'm about 25 years into my career in technology. Over that time, I've done the standard progression from developer to architect to team leader to program leader to business unit leader. While I've stayed up to date on general technology trends (perhaps more than about 95% of my peer group) - I have started to really miss hands on coding - something I haven't done for almost 20 years. It's not for my job, and I don't plan to make any money at it - but I'd like to get back to coding on at least a recreational basis. Here's the rub: what are the right tools?"
"'Back in the day...' you had about 2-3 choices of languages and perhaps the same number of OS's. There were not frameworks, API's, development environments, etc. I'd like to pick a toolkit and learn it. My goals are pretty simple: I want to write applications that have a great look & feel that will primarily be pulling information from the web (think weather & news), play with that information and present it in interesting ways. I'd like those applications to be usable on the Linux and perhaps Mac OS X platforms. I'm not a complete non-techie. I use Linux at home, have set up all the toys like Squid and BIND - but this is just administration. I need to get back into the guts of the machine. If you were me where would you start? What language(s) would you want to become conversant in? What do I have to worry about beyond the choice of the language itself? What frameworks? What other tools?"
This discussion has been archived. No new comments can be posted.

A Dev Environment for the Returning Geek?

Comments Filter:
  • by marcus (1916) on Tuesday December 20, 2005 @12:51PM (#14299399) Journal
    And am currently enjoying Ruby.
    • Download a smalltalk

      http://smalltalk.cincom.com/ [cincom.com] - VisualWorks is free for non-commercial use.
      • I also forgot to mention that VisualWorks has installers for Windows/MacOs/Linux amongst others, so you don't need to worry about the whole platform thing, just use it on your current system.
    • For starters try Anjuta [sourceforge.net] or KDevelop [kdevelop.org]. Both of them are really complete IDEs.
      If you really want to just have fun you should go with Ruby, it is designed 'to enhance the pleasure of programming' according to the author. But that doesn't mean it is not powerful, just look at rails. There are online books that will help you get started. There is also a nice channel on freenode, #ruby-lang, with really helpful folks.

      If left to me I would say emacs, the learning curve is slightly steep, but there is nothing to bea

  • Get a Mac (Score:5, Insightful)

    by DrTime (838124) on Tuesday December 20, 2005 @12:55PM (#14299434)
    Get a Macintosh, they come with all the Developer Tools you need. XCode is an outstanding and powerful shell around the Gnu tools. The Mac OS X environment is feature rich with forward looking tools. The Macintosh world is not crowded like the PC world, so if you find a great idea, it might get noticed. At least take a look at it.
    • Re:Get a Mac (Score:4, Insightful)

      by Bastian (66383) on Tuesday December 20, 2005 @02:35PM (#14300567)
      So true. Also, clueful Mac users who might appreciate some crazy idea you got aren't afraid to download stuff they've never heard of before just to try it out, because there just isn't much spyware on a Mac. Same goes for Linux, of course.

      Even if Windows shareware/freeware developers succeed in rising above the unholy din of the Windows software scene, they are going to have a lot harder time getting me to try their stuff because I get fsckin' paranoid when I'm sitting in front of a Windows computer.
  • For Windows development, Visual Studio is the only way to go, and MS now has a series of Express Editions that offer Free C++, Visual Basic, or C# development tools. Note that Express Editions do not allow you to sell or distribute your software, but as a hobbyist, they are great tools for getting back into software development without spending a dime.

    I have found NO free development tools for the Windows platform that are easy to use and as well thought out as the Visual Studio product line.

    For Mac develo
    • by voxel (70407)
      Funny, I was thinking ObjC is nice and C++ "is an antiquated and bastardized attempt at object orientated programming".
      • Funny, I was thinking ObjC is nice and C++ "is an antiquated and bastardized attempt at object orientated programming".

        That's about as accurate and insightful as his comments on Objective-C. ;-) +1 Insightful? Please!
    • Re:Plain and simple (Score:5, Informative)

      by misfit13b (572861) on Tuesday December 20, 2005 @01:13PM (#14299569)
      Note that Express Editions do not allow you to sell or distribute your software...

      That's not what I'm reading in the FAQ [microsoft.com], question 4.

      Can I use Express Editions for commercial use?

      Yes, there are no licensing restrictions for applications built using the Express Editions.
      • Re:Plain and simple (Score:3, Interesting)

        by Bluesman (104513)
        Python has a lot of modules that would really help you do what you want.

        Perl and Java, also. I'd probably recommend them in that order.

        They all have fairly comprehensive reference material and some good tutorials on the web.

        My favorite development environment is still emacs with the vi key bindings, but IBM's Eclipse is also very good if you're doing Java, and you have a fast enough machine to run it.

        In fact, trying Java out is much easier with Eclipse, as it fills in a lot of the code for you, and lets yo
    • by GiMP (10923)
      The vi editor is an essential tool, imho. This is a "cheap command line text editor" as you call it. Personally, I simply can't imagine working without it.

      However, you're right in the idea that IDEs *do* offer something that the commandline doesn't. This is why, if I am to use an IDE, I use Eclipse with the ViPlugin.
    • by wandazulu (265281)
      Metrowerks (sorry, Freescale) already announced that there will be no more OS X version of Codewarrior (nor Windows...they're going for the embedded market now).

      Dunno about their Linux IDE, but I wouldn't be surprised if that gets shut down too.
    • Re:Plain and simple (Score:5, Informative)

      by cursion (257184) on Tuesday December 20, 2005 @02:15PM (#14300248) Homepage
      For Mac development, the free XCode tools are good, however I would look into CodeWarrior because ObjectiveC, in my opinion, is an antiquated and bastardized attempt at object orientated programming, CodeWarrior offers C++ access to OSX programming API's.


      As nice as it is, you might want to avoid CodeWarrior on Mac - arent they killing this product with the move to Intel?

      XCode would be the way to go on a Mac - it handles different languages.

    • Re:Plain and simple (Score:5, Interesting)

      by OmniVector (569062) <see [ ]homepage ['my ' in gap]> on Tuesday December 20, 2005 @03:47PM (#14301687) Homepage
      For Mac development, the free XCode tools are good, however I would look into CodeWarrior because ObjectiveC, in my opinion, is an antiquated and bastardized attempt at object orientated programming, CodeWarrior offers C++ access to OSX programming API's.
      I can tell someone's never done modern development for Mac OS X. At all. First off, obj-c is a MUCH better OOP environment than C++. Check out my tutorial [otierney.net] for a whole host of good reasons why. Categories, posing, dynamic method forwarding, delegates instead of subclassing, no confusing static AND dynamic allocation, no multiple inheritance, NO TEMPLATES, amongst many other things that C++ just plain sucks because of. Also, CodeWarrior is a horrible (and expensive) dev environment compared to the free Xcode environment.
      • Re:Plain and simple (Score:3, Interesting)

        by topham (32406)
        Never mind CodeWarrior is deprecated for Mac OS X development.

        With the move to Intel processors you're pretty much left with the XCode tools, a long with gcc, etc.

        Not a bad thing in my mind. While I have not done much development with it, inspite of my intent every few months to give it a go I have found XCode to be a decent tool and Objective C to be very interesting.

        When I had the time, years ago, I spent a lot of time trying to learn C++ and it made no sense. (since then they have created STL to solve m
    • Free until November 6, 2006 [microsoft.com]. Although a newer free version may be available by that time.
    • I have found NO free development tools for the Windows platform that are easy to use and as well thought out as the Visual Studio product line.

      What about Codeblocks [codeblocks.org]? It's still in beta, but IMHO it's much better than Dev-C++, and it's GPL.
    • Re:Plain and simple (Score:2, Interesting)

      by nhstar (452291)
      I'd argue against the "no free" stuff for windows. I've been tinkering (sadly, not prolevel) with #develop for a while now. Since all of the .Net framework is available to any windows install, it's at least as up to the task as VS.Net is... and the plugin array makes it almost as flexible as using Eclipse. But .Net on windows right out of the... uh... installer. Plus, the guys who put it together thought plenty ahead and hooked their help system directly into MSDN for up-to-date info.

      and yes, it's op
    • Note that Express Editions do not allow you to sell or distribute your software,

      Er, there's nothing in the EULA that says you can't distribute/sell stuff you compile using it.
    • I can't suggest anything for Linux, except that CodeWarrior also makes a Linux IDE. I don't recommend developing software using cheap command line text editors or gcc compilers, unless you love being counter productive and frustrated.

      Funny. So I must assume all free software developers for un*x (that use GCC and text editors 99% of the time) are counter productive and frustrated?

    • For Windows development, Visual Studio is the only way to go ...

      If you had written 'most popular way to go' or 'most used way to go', then I might have agreed. However, there are other development environments for Windows, used by million coders around the globe, so your statement about Visual Studio being the only way to go is simply incorrect.

      I have found NO free development tools for the Windows platform that are easy to use and as well thought out as the Visual Studio product line.

      Ever heard about

    • For Mac development, the free XCode tools are good, however I would look into CodeWarrior because ObjectiveC, in my opinion, is an antiquated and bastardized attempt at object orientated programming, CodeWarrior offers C++ access to OSX programming API's.

      I don't actually like Objective-C or Xcode, but there is one thing where they are clearly superior to C++: Objective-C is far closer to what object oriented programming is about than C++. As Alan Kay wrote:

      "I invented the term Object-Oriented, and I can te

  • Like we don't have enough competition from outsourcing ... now management's starting to get into it ..just great .. I'll trade you my programming cubby hole for the business unit leader oak desk ..
  • If you are interested in cross-platform UIs, you might have a look at XUL [mozilla.org] and XULRunner [mozilla.org]. You can drive them using at least C/C++, Java, Python, Ruby or Perl.

  • I'd say... Java (Score:3, Insightful)

    by FooAtWFU (699187) on Tuesday December 20, 2005 @01:09PM (#14299536) Homepage
    Look into Java. Really. It'll run on *nix, Mac and Doze, and a good toolkit framework like SWT is plenty shiny. Yes, you'll suffer from slightly lengthy load times and memory usage and all that stuff. But there are plenty of Java IDEs, especially Eclipse and various Eclipse-based toys.

    Other than Java, most of the really cross-platform *nix/Doze/Mac stuff I've really seen has been GTK-based: X-Chat, Gaim, and such. This would be mostly C/C++ work, but I'm not particularly up-to-date on compiling this sort of stuff for Windows. The other thing to consider is whether you can stuff everything into a web-based application. You can do a lot these days, especially with the JavaScript DOM- look at Gmail, Google Maps, and such. This is nearly the ultimate cross-platform solution, but might be tricky to pick up if you're not familiar with HTML and CSS and JavaScript at least a little already. It also suffers from the usual limitations associated with web apps. You might look into Flash for applications as well if you're going for pure shininess- though it generally has similar limitations and all the drawbacks associated with Flash itself, especially with the usual Flash environment costing an arm and a leg...

    • Sad to hear an obvious Browncoat say SWT is "shiny".

      It is no such thing.

      SWT is a non-solution to a non-problem. If you can't figure out how to use Swing properly, you won't be any better off with SWT, which a non-platform-portable portation of an old Smalltalk API.

      Eclipse is almost mostly harmless if you're only coding Java as a hobby. It is rather resource-intensive. But if your involvement is that casual, consider jEdit [jedit.org]: small, lightweight, very functional, with plug-ins available for most common tas
    • Re:I'd say... Java (Score:3, Insightful)

      by phill7 (927623)

      I agree. I'm a C++ programmer and learned very fast to code in the Java language. Compared to the aging and incomplete C++ standard libraries, I found the Java standard libraries very complete and well integrated, which allowed me to devellop any kind of GUI and communication applications rather fast and without having to constantly seek for some extra libraries.

      I also loved to use the great developper free tools available for that language, mainly NetBeans and Eclipse. Their code auto-complete and integra

    • I like the structure, uniformity, and well thought out nature of JAVA but I find the language on the whole to be unexpressive. I think the ideal language would be something with the expressiveness of Python but the well laid out standard library and interfaces of Java. (yes i'm aware of jython)
  • by joib (70841) on Tuesday December 20, 2005 @01:10PM (#14299548)

    My goals are pretty simple: I want to write applications that have a great look & feel that will primarily be pulling information from the web (think weather & news), play with that information and present it in interesting ways. I'd like those applications to be usable on the Linux and perhaps Mac OS X platforms.


    In that case I'd recommend something like python [python.org] combined with some gui toolkit such as wxpython [wxpython.org] or pygtk [pygtk.org].

    ...into the guts of the machine


    Since you're on some unix-like system, you could do worse than plain C and a few books (C:ARM5 by Harbison & Steel and Advanced Programming in the Unix environment by Stevens spring to mind). Some asm knowledge might be useful too.

    As for tools, frameworks etc. there is of course an unending list of those. For an IDE, a like emacs code browser [sourceforge.net].
    • Look at the difference between scripting languages (perl/python/ruby) and straight C.

      If you want to force yourself into the guts of the system, do some kernel hacking, do a Gentoo install from scratch (which doesn't have an install program; you must learn your shell and your rescue utilities...)

      Learn things like Assembly, learn a bit about how compilers work so that you know what code is efficient and why.

      The tools I've learned and have served me well are probably the same ones you used 20 years ago: vim a
    • by pthisis (27352) on Tuesday December 20, 2005 @02:58PM (#14300924) Homepage Journal
      Python + wxpython is a great choice. Python is a full-fledged language, not a scripting language (although it can be used for scripting). It scales well from rapid development/one-offs to large multi-site dev team projects (our current project is about 300,000 lines of code).

      It's also very easy to write C extensions for Python if you ever run into a situation where you need to access something that's not available (unlikely) or squeeze out some more speed.

      For gui building, wxglade is quite nice as a visual builder.

      As far as a development environment, I strongly recommend going with an unbundled editor like vim (with the Cream bindings if you don't like vi modal editing and want keybindings like a normal windows app) or emacs. That way you can stick with it with every language you use, and it's easy to integrate it with other tools. They're both liable to be installed if you wind up logged in on foreign machines, and both have all the whizz-bang features that IDE users somehow think aren't available in real programmer's editors (probably because they associate "editor" with "Notepad"). They're free and widely supported.

      People always harp on the unique features of emacs and vim, so maybe people forget that they do the standard stuff as well:
      • Syntax highlighting/indentationn
      • Code compilation/validation on the fly (syntax-error checking, so if I'm coding python and type "if a=1:" it'll know that I needed an == there and immediately highlight the syntax error)
        context-sensitive help (if I type "cmp(" then the status line shows the help text for the cmp function)
      • intellisense-style completions
      • class browsers (I have menus showing all the parent/child classes of the current class and all it's methods, or can jump to a top-level class listing)
      • code browsing (I can follow function/method calls down a stack and pop back where I came from, and get a cscope-style listing of all the places that call a particular function/class)
      • refactoring tools (I can easily rename classes/methods/etc throughout the project)
      • Source control integration (including side-by-side diffs between 2 versions of a file with similar portions elided and differences highlighted).
      • Outlining/folding (so I can go to a file, hit F6 to see only the class/method definitions, find what I'm looking for, and hit F6 to expand out to everything--it's a lot more than that, but that's the simplest use case if you haven't used folding before).


      All of it in vim, though emacs is an equally reasonable choice. Just because they're old doesn't mean they don't have great features.
  • Delphi (Score:3, Informative)

    by SAN1701 (537455) on Tuesday December 20, 2005 @01:13PM (#14299570)
    Go to Borland download page [borland.com] and get the free Delphi Personal. I work with many languages (C#, Objective-C, 4D, sometimes Java), but Delphi is the most productive and fun to use, by a wide margin. As a plus, you can generate apps for both win32 and the .NET framework, with the same language.

    Have fun in your return to coding!
    • You can't actually download Delphi Personal from that page. It has "Keys Only (If you have a CD)" and states: "Please note that Delphi 2005 Personal is only distributed through select publications, and is not available for download."

      Anyone know where to get Delphi Personal (legitimately)?
  • Its primary focus is Java, but you can use it for multiple languages. If you were to spend time with an IDE (and some would say that in itself is evil) Eclipse is the one I would pick.

    http://eclipse.org/downloads/ [eclipse.org]

    Going further, I'd probably say you want to putter around with web applications. (Tons of people out there doing PHP, etc, but I would stay on the Java side of the fence) Building web apps, you can start with the spaghetti pages filled with scripts, start encapsulating code, pick up on a MVC fram
    • Going further, I'd probably say you want to putter around with web applications

      I'd say so, too.

      (Tons of people out there doing PHP, etc, but I would stay on the Java side of the fence)

      Dude, are you trying to crush his spirit? PHP has a poor community and lots of sloppy code. But Java's not great, either - it has a lot of massively overengineered frameworks that require a lot of "XML push-ups". It's not a bad language, but I haven't seen a combination of it and any web framework that I enjoy using.

  • by Dan Ost (415913) on Tuesday December 20, 2005 @01:13PM (#14299583)
    Take a look at learning python. It's easy to learn, fast to develop in, and remarkably flexible and powerful. It comes with it's own IDE (idle), but there are lots of IDE's that support it out there (I use VIM with color coding since most IDE's give me the creeps).

    Give yourself half an hour and walk through the tutorial at www.python.org.

    I still do most of my work in C/C++, but Python is my language of choice for new projects that don't already have lots of legacy code.
  • PIC Microcontrollers (Score:2, Interesting)

    by gus goose (306978)
    In something of the same spot myself. I have found great satisfaction programming PIC Microcontrollers. Recently I decided to move from assembler to C, and that is quite fun too. It's amazing what you can put together when you try.

    www.microchip.com
    www.piclist.com

    gus
    • Can you recommend a simple starter board? I would like to play a bit with hardware and such and I programmed ASM a lot on the 6502 (Apple II, yeaaaaars ago) and a bit od x86. So what would be a goof beginners board?
    • Well, I am still mostly a beginner myself.

      What I have:
      "breadboard" for playing with circuits.
      I found DIY Kit 128 at a local electronics store. The website is at http://www.kitsrus.com/upuc.html [kitsrus.com]
      The Kit128 is undergoing some support problems right now in that the primary software developer died, and there is a new crowd taking over. It still works really well, but the newer chips will be a few weeks away from being supported. See discussions at: http://www.websitetoolbox.com/tool/post/diykit/vpo st?id=760548 [websitetoolbox.com]
    • Maybe you'd be also interested in Atmel's AVR broad line of 8-bit RISC processors. You can find more information here [atmel.com].

      IMHO and compared to PICs, they have a very clean architecture (=> smaller code size & a rather high speed for 8-bit uCs). There is also a GNU GCC port which AFAIK does not exist for PIC processors.

      No, I don't want to start a flamewar, and no, I'm not an employee of Atmel, just a hobbyist using their uCs :)
  • Check out the Coding4Fun site. You can get free downloads of lightweight versions of many of MS's development tools, plus lots of ideas, resources, message boards, etc.

    http://msdn.microsoft.com/coding4fun/ [microsoft.com]

    Me personally, I like playing with things like Amazon.com's API or Google's various tool APIs and building my own hacks.

    Amazon's AWS/Alexa [amazon.com]

    Google Desktop API [google.com]
  • Go out and get yourself a copy of Processing [processing.org]. It's an easy to use subset of Java that includes a simple IDE and one button application and applet export. It's very simple to learn, but can also use any Java code that you might want to write to extend it. Java in general is a bad language for casual hacking because it takes so much effort to figure out what's happening with Java's libraries. Processing takes a lot of that complication away and lets you focus on writing code that makes pretty pictures.
  • Some ideas (Score:5, Interesting)

    by hedronist (233240) * on Tuesday December 20, 2005 @01:32PM (#14299723)
    You don't really say what type of problems you want to work on and that can make a big difference in what environment you choose. Kernel hacking leads in one direction, and DB-driven websites goes in a completey different direction.

    Speaking as a GeezerGeek(tm), here are some of the technologies I have found that are something more than The Next Great Thing ver 31.4.

    1. Python. It took me a while to get past the indentation-as-block-structure thing (I still think it was a mistake), but this is a language that tremendous expressive power. If I were still teaching, this is the language I would start my students with, knowing that they could go anywhere they want with it.

    2. If you are doing any sort of web work, you will probably have to do a little (a lot?) PHP. Fortunately, v. 5 has fixed some of the nastier aspects of the language, although there appears to be no way to undo some truly horrible naming convention mistakes from its early days.

    3. AJAX. It's worth a look if you want to stay within the browser's window. And that means you should get good Javascript/CSS/XML/HTML books.

    4. Firefox-as-UI-platform. This is related to the above. I am just beginning to get into this and it looks very promising. Other people know far more than I do. The GreaseMonkey extension is great fun to play with.

    5. If you are picking up a DBMS, the obvious choices are MySQL and Postgres. If I were just starting, I think I would go with Postgres, if only for OSS purity reasons. OTOH, I have had no problems with MySQL for the relatively low-level situations I have used it and it is generally more available as part of commercial hosting packages.

    "Back in the day" I taught programming, so here are a few recommendations for your first few projects.

    A. First, pick something fun and relatively simple. I have found that a great way to get into a new language/platform environment is to implement a simple game (eg. hangman, snake, mastermind). The rules are very straightforward, yet they will force you to at least dip your mental toe into logic flow, class structure, I/O and UI, file storage (for high scores), etc. Most of them can be implemented in a few hours and you get that immediate feedback of success. If you are feeling your oats, you might try things like using Python's generators as nanothreads for animation sprites. See the Lightweight Games Toolkit at http://lgt.berlios.de/ [berlios.de] for some ideas. (Obviously, this should *not* be for your first project! :-)

    B. Pick an area of application that you are already a domain expert in. This way you can focus on the "how", instead of the "what" or the "why".

    C. Find a good OSS project and implement a few new features. For example, if you are interested in photography, you might grab Gallery 2 from gallery.menalto.com and try adding a feature to an existing layout module, or try creating a new layout, using an existing one as a template.

    D. Find an interesting-but-broken OSS project and dive into the code. Maybe you can breathe new life into a moribund project.
    • I'd agree with most of the things he said, except substitute ruby for python. It's all the great things about that language without the forced indentation, and then some. Ruby on rails is all the rage these days and there's a good reason.
    • Re:Some ideas (Score:2, Informative)

      by teknico (217206)
      > 1. Python. It took me a while to get past the indentation-as-block-structure
      > thing (I still think it was a mistake)

      Your comment got to 5, so somebody's got to say it. Significative indentation is nothing less than a stroke of genius. You indent your code anyway, right? So why is everybody forced to keep track of *two* kinds of block delimiters at the same time? Get rid of the stinkin' parentheses, and be done with it!

      The rest of #1 is spot on, however.

      > 2. If you are doing any sort of web work,
    • Re:Some ideas (Score:3, Informative)

      by Hast (24833)

      3. AJAX. It's worth a look if you want to stay within the browser's window. And that means you should get good Javascript/CSS/XML/HTML books.

      4. Firefox-as-UI-platform. This is related to the above. I am just beginning to get into this and it looks very promising. Other people know far more than I do. The GreaseMonkey extension is great fun to play with.

      There is quite a lot you can do with just this since the OP seems to want a way to hack around with webpages. And with some creativity you wouldn't even need

  • The problem sounds vaguely familiar - often I want to try new things (programming languages, tools, ...), but lack the right project to start going.

    Maybe have a look at some open source projects (http://www.freshmeat.net/ [freshmeat.net] http://www.advogato.org/ [advogato.org] etc. have some lists), look at the code and read it, read the mailing lists to get into the development process, start making changes for things, try getting review of them, submit code and maybe also documentation (actually, documenting things that you find undocu
  • Practical Development Environments http://www.oreilly.com/catalog/practicalde [oreilly.com]. This covers all manner of tools: version control, build tools, testing environments, bug tracking, documentation and release. Each chapter talks about general ideas, and then looks at specific tools (some open, some closed).

    ~Matt

    (Disclaimer: I wrote it)

  • OSX is the best place to hack these days because they support full array of cross language development. Objective-C has alot of promise becuase of its ability to leverage C and C++ libraries very easily. It also bridges well to Ruby and Python.

    By using Python and/or Ruby as your prototype layer, you can migrate stabalised code to Objective-C and even further optimize locked down frameworks to C or C++. All within the same application.

    Cross-Lanugage applications is where the future of large application devel
  • Instead of developing stuff for the desktop, where you have to chose if it runs on Windows, Mac OS/X or Linux, why not tinker with something web based?

    Start with LAMP (Linux Apache MySQL PHP) because it is available everywhere on virtually all hosts, or go a little bit further with a framework such as Drupal [drupal.org].

    If you are a bit more adventurous and do not care about hosting availability, consider Ruby on Rails.
  • So you "coded" for 5 years, and then went "techie-upstream" for 20...

    In a nutshell, you need to code for another 10 years. It takes around 15 years to build reasonable proficiency and skill.

    Back to the "salt mines" for you.

    1 - 20 year ago, C just started gaining commercial acceptance. Work on your C skills for a couple for years. Study old Unix source. If you can look at this code, and tell what is wrong, you are well on your way (and, yes, I know it is K&R):
    f(c) char c; { char *s = f2(s); }

    2 - Learn S
  • by Raskolnk (26414) on Tuesday December 20, 2005 @02:18PM (#14300286)
    There have been major developments in programming environments over the years. The most significant of these are as follows: vi has been improved, emacs has syntax highlighting, and the Bourne shell has been born again.

    A lot of people went on some tangent about these IDE thingies. Don't worry about that, it proved to be totally useless in the end.
  • Widget Engines? (Score:2, Informative)

    by slthytove (771782)

    Although these haven't really taken off on Linux yet, there are several "widget engines" (for lack of a better, encapsulating term) that have become quite popular over the past couple years. You mentioned a desire to do small, web-fetching things - that's what many Widgets end up being. On top of that, the logic is usually handled with readable scripting languages, there's usually no compilation required, and it's very easy to get nice-looking graphics up alongside the code.

    I've recently started doing most

  • Personally I would like to know two languages really well. To me it seems like there's two types of programs that I would write, big programs and small programs. For the big ones I would want to use common mature language like C/C++ (or Java if you prefer) that way the program will run faster and pretty much everyone can run C executable or Java bytecode. Then for the smaller ones I would like to know some sort of 'scripting' language such as Perl/Python/Ruby/php/etc where I can quickly write things down an
  • Eclipse RCP (Score:3, Interesting)

    by curious.corn (167387) on Tuesday December 20, 2005 @03:03PM (#14301001)
    You might be interested in the Eclipse RCP [eclipse.org] developing environment. It's Java based so it will run just about anywhere, it's heavily OO design patterned so there's quite a bit of API to chew but it has a nice GUI editor. I'd give it a bite...
  • If it were me, I'd go with Java and use the Eclipse IDE. Java is fairly easy to learn, fairly powerful and has large, useful standard class library and has a wealth of additional libraries (many F/OSS) available. If you're interested in grabbing stuff off the 'net, look into Jakarta Commons HttpClient [apache.org]. Or, for other protocols than HTTP, look into Jakarta Commons Net [apache.org]. If you want to invoke web-services calls, you might find Apache Axis [apache.org] useful.

    As far as look and feel, Swing has come a long way as a GUI too
  • I'll probably be flamed for suggesting a non-free, Flash-oriented solution on Slashdot, but...

    Check out Macromedia Flex 2 (errr, I guess now it's "Adobe Flex 2"), currently available as a free alpha release [macromedia.com]

    It's based around the (free) Eclipse IDE, and satisfies your requirements:

    -- great look & feel
    -- well-suited to pulling info from the web (think weather & news)
    -- usable on the Linux and perhaps Mac OS X platforms as well as Windows (basically, anywhere Flash Player runs)
    -- standards-based to some
  • Because the next big thing, which you could learn while it's still cutting edge technology and known by only a select few, is Windows Vista and the Windows Presentation Framework. <Yoda> Powerful GUI it is... Powerful GUI</Yoda>
  • Welcome! (Score:5, Funny)

    by gnarlin (696263) on Tuesday December 20, 2005 @05:24PM (#14303032) Homepage Journal
    Welcome back Bill!
  • It's one-stop shopping. Just download the current edition of the JDK and it comes with NetBeans -- all for free. It's available for every platform and it supports full object-oriented programming and most modern tools, everything from aspects to unit testing.

    With Java, you can go in any direction you want. Want to play around with algorithms? There are good Java algorithm texts around, and you can have a blast. Want to write up a GUI? You can do that too. Want to do networking software? Java offers great ne
  • "what are the right tools?"

    a shell, a compiler and vim.
  • A little different from what you're used to? You've been programming for years so you'd like something that gives you a different perspective on old problems? But you don't want to go out on a limb - you'd like to use tools that are well documented and well supported with a large user base. The answer is simple: Haskell [haskell.org]. Everything else is just the same old same old.
  • by AHumbleOpinion (546848) on Wednesday December 21, 2005 @12:19AM (#14306370) Homepage
    I have started to really miss hands on coding - something I haven't done for almost 20 years.

    Fire up a console under Linux, use vi and cc, and you'll feel right at home as if 20 years had not passed. ;-)
  • Since you haven't mentioned a specific programming language, I'll assume you're conversant in C, but not C++ or Java. In this case, you'd probably be good learning Java: you'd be learning a new style of programming, have a "safe" environment to fail (since everything in is in a JVM) and you can leverage the cross-platform GUI to run on Mac and Linux.

    Eventually, you'll want to move to Eclipse [eclipse.org], but you can start off with BlueJ [bluej.org], which will help you learn the basics before you try anything more advanced.

  • by sdedeo (683762)
    Hey, there's a lot of good advice in the comments here, but if you are working purely for fun, I recommend playing with / learning LISP. ANSI Common Lisp has a great manual by Paul Graham, and there is a great set of books on Scheme (closely related) in dialogue format (forget the titles, go on amazon, Little Schemer I think?)

    These are great languages, truly beautiful in a really deep conceptual manner. They are also very flexible. You are beyond the OMG I can create a dialog box like a real program stag
    • by be-fan (61476)
      I have to agree with you. The people who have been saying "do C, that's what everybody uses" are really missing the point. If you're coding reacreationally, you're not constrained to using what everybody else is! LISP is a great way to expand your horizons, and will teach you a lot of techniques that transcend specific languages. It really is a language that lets you focus on creating something interesting, instead of getting bogged down in micromanaging the machine.
  • I've been in the game for about 30 years now, and the skills that I learned in my youth on a DEC PDP and VIC-20 are as applicable today as they ever have been. Forget all the fancy IDEs and tools that promise to save you from having to do real work. The way to approach any problem is to look at the requirements, then shop for the right platform that will do the best job. In some cases this will be the latest and greatest programming language, but in many other cases the old standbys (or some variant) wil
  • Ignore all the script functional language fanboys. The ONLY languages
    you can write EVERYTHING in on ALMOST EVERY platform is C (and also C++).
    It goes all the way from the OS itself through device drivers, database
    engines, games, GUIs , you name it.

    If you don't know C learn that first as it'll give you a good grounding
    in low level techniques then learn C++ to get a reasonable grasp of
    OO & generics. (Cue ivory tower academic rant on how C++ isn't true OO...)
  • Lazarus (Score:3, Funny)

    by marcovje (205102) on Wednesday December 21, 2005 @08:31AM (#14307891)

    Try Lazarus, http://lazarus.freepascal.org/ [freepascal.org]
  • ...is to just pick up a Sun Ultra 20 [sun.com]. It comes with the latest development tools for Java (including an app server), C, C++ and FORTRAN, and is a peppy box to boot. You also get three years of support for the included tools, and it'll run Solaris 10, Linux and Windows. It's also reasonably priced, all things considered.

All constants are variables.

Working...