PDA

View Full Version : The Programmer Thread


Serapth
05-11-2009, 01:16 PM
I think more than a fair share of us here are developers in some way, shape or form. What language/IDE/platform/etc... do you use?


Me.

I am pretty solidly in Microsofts back pocket here. They just simply have the best support for developers hands down. Now that I am working on my own project, I am still using all Microsoft tech, even with a price tag attached. That said, I am a bit wary of paying a premium for MS SQL over MySql.

Prefered language: C#
IDE: Visual Studio 2008

I am doing mostly ASP.net work, with MS SQL as the back end.

In a past life, I did some game and graphics programming in C/C++ and you couldn't pay me enough to go back to C++ programming. After using a modern language, programming in C is like replacing your pencil for a tablet and chisel. I would really like to try out iPhone development, even bought a Mac... that said, Objective C.... ugh. I really hope it isn't all that C-like.

Through the years I have tried Java ( too unfocused, way too many libraries and far to enterprisey to learn well ), Python ( good one to start with ) and a dozen other languages. NetBeans and Eclipse seem like solid IDEs although Eclipse seems to break if you look at it funny. I have done both VB and PHP briefly and from my exposure both seem like absolutely horrible languages that promote terrible programming practices. I've looked into but never used Ruby... to be honest, I don't really get the hype. Ditto with the current catchphrase development concept MVC ( which frankly has been around forever... hell that was the model ( pun not intended ) MFC was based around ) and again, I really don't understand the hype. That said, Web 2.0 seems to be all about bandwagoning and group think.

Oh, and Vi users are masochistic euridites.

Codicier
05-11-2009, 01:46 PM
I'm a 4th year university computer science student and I'm currently doing a co-op placement with a media company here in Ottawa. We're currently working on an XBLA title and that's about all I'm allowed to say about that at this point. I'm looking to continue on as a game dev once I've finished my degree.

I started learning with Java but I've since used C# for a while and I've found it to be the far better managed language. I've worked to a degree in a few other languages but nothing I would call extensive. Where I'm working now we're using C++ and I find that for all its difficulty I'm starting to like the flexibility and power of the language. My C++ education was woefully inadequate so this is a definitely useful learning experience for me.

I've used JBuilder and Eclipse for the Java coding I did but for scripting style languages like Perl or for simple C it's mostly been Notepad++. Visual Studio 2005 Express and 2008 for the C# and C++ that I've done; I find VS is an excellent IDE.

I had to use Vi back when I was doing my first C course and I was unaware of the alternatives. I hated it and why anyone would subject themselves to it is beyond me.

TheFlyingOrc
05-11-2009, 02:23 PM
I was trained in Java at university, it's my best language. I love that you can just do anything you feel like with Java, even though it's slow.

However, I currently work at a game company, where I program in Pawn, a C-like language. No real data structures or pointers. It's interesting. I also occasionally do some stuff in LUA.

Serapth
05-11-2009, 02:32 PM
I had never heard of Pawn, until I googled it and realized Pawn used to be Small, a language I know well. I think I was a Dr Doobs subscriber back then.

I am kinda suprised its still in use given all the embedded languages out there these days ( including LUA as you've mentioned. )

TheFlyingOrc
05-11-2009, 03:11 PM
I am kinda suprised its still in use given all the embedded languages out there these days ( including LUA as you've mentioned. )
We use it in the scripting department because they want to greatly limit our department's ability to blow up the servers. They don't trust us very much. :(

However, it is nice that roughly the only thing I can do wrong is index an array poorly. Other than that, runtime errors that cause crashes pretty much don't exist!

Whoops, forgot infinite loops. :(

Shandor
05-11-2009, 03:40 PM
I'm right there with you on the scripting. Most of my code based scripting was in small C and LUA. Most recently it was all Unreal. Visual scripting... bleh...

Apart from that, most recently I've been using mostly C#.

Hexxagonal
05-11-2009, 03:49 PM
I'm currently a C#/ASP.Net person myself. I work in just the presentation layer though.

Arphahat
05-11-2009, 04:22 PM
VS 2005. Work will probably be upgrading eventually, but sometimes large companies move at a snail's pace.

I love C#. And, I've been using it while doing all kinds of fancy-pants patterns from the "Gang of four." But, I haven't had much of a chance to do any WPF stuff. Hopefully our next project will lend itself to it.

Chris_D
05-11-2009, 04:24 PM
I used to be a J2EE guy, or Java EE as I think it's known now. I still code in Java on the occasion I have a need to whip something up. I have the JCSP and JCSD certs for version 1.4. My Microsoft certs are a bit more out of date, I have the MSCD, with SQL Server 2000, VB6 Desktop, VB6 Distributed, and Solutions Architecture certs. Never really got on the .NET bandwagon but I'm sure it must be a hell of a lot better than working with VB6/ASP.

Serapth
05-11-2009, 04:32 PM
VS 2005. Work will probably be upgrading eventually, but sometimes large companies move at a snail's pace.

I love C#. And, I've been using it while doing all kinds of fancy-pants patterns from the "Gang of four." But, I haven't had much of a chance to do any WPF stuff. Hopefully our next project will lend itself to it.

WPF seems like technology masterbation. Technology that exists merely to exist. At first when it seemed like WPF would be thick/thin/web client friendly, it was one thing. Then, when they spun it off into the comprable but not compatible silverlight, I knew WPF was a deadend street.

TheKeck
05-11-2009, 04:34 PM
I'm currently doing c++ code in VS. It's making me want to murder something.

Trihex
05-11-2009, 04:36 PM
I do J2EE development as the day job. A lot of Spring, Hibernate, JSP type stuff. Use IntelliJ at work, but prefer Eclipse.

On the side and by night, I work on game development - C/C++ using Visual Studio 2008. I do a lot of work using the Torque set of engines, and am very familiar with them.

You can check out what I'm working on at www.trihex.com

shunoshi
05-11-2009, 05:02 PM
C# with VCE 2008. I've done a bit of C++ in the past, but C# has made me blissfully ignorant about things like "delete" and ->

I've been monkeying with XNA making a 360 Community Game for a few months now. Good times.

Dark Acre Jack
05-11-2009, 05:38 PM
Actionscript 2.0/3.0, which is supposedly like Java.

Since there was a 10-year gap between my forays into programming, it seems like things are getting a lot more intuitive and closer to natural language.

Ancalagon
05-12-2009, 03:51 AM
Right now, I'm using XML, Ruby and Linux Shell scripting language to create installers for our software. Its a bit annoying having to deal with the intricacies of adding shortcuts to the Red Hat (Gnome menu).

How do you do this on Windows, you ask? Create a shortcut, put it in a folder in the menu location (in Documents and Settings). Thats pretty much it. Its a real folder just like any other, and the Start Menu in Windows is smart enough to turn a folder into a menu.

In Gnome (bear in mind different versions have different methods!)? First, create a .menu file consisting of XML, put it in the right folder (its a secret, and didnt even exist on my machine). Then you need a .directory file, which you put into another secret folder, which again didnt exist. How do I put icons into my new start menu? You create icons and edit their attributes to make it so that they show up in the right folder. How do I know all of this? Mostly obscure web pages and trial and error.

Sigh... my pain is nearly at an end though, I've got it working and it just needs testing now.

The other thing I'm working on is our internal support website, using .Net 3.5 and MySQL. A colleague of mine wrote a nice data access component for MySQL, makes things a bit simpler except it doesnt support stored procedures as far as I know. Websites using .Net 3.5 are a thousand times easier than classic ASP.

I had to work on classic ASP pages at my old job, I wanted to kill myself.

Worldcrafter
05-12-2009, 07:36 AM
[QUOTE=Serapth;256255]Oh, and Vi users are masochistic euridites./QUOTE]
Heh. Probably true. I will say Vi(m) makes a terrible IDE, but it's a great tool for administering Linux servers.

Chris_D
05-12-2009, 07:50 AM
Crystal Reports and Enterprise was some of the most heinous shit I've had to work with.

Ancalagon
05-12-2009, 07:52 AM
Oh god, my company is full of Vi and Vim enthusiasts. I only use it for small files that are difficult to get to via the GUI, because I need root permissions for them. People in my company use it for serious dev work, for them the idea of an IDE is... unnecessary. Only one linux user uses Kate as his Linux IDE, but then he's full of radical ideas like source control. Yeah, a true heretic, I know.

I'm trying to get damn gnome to damn display two of my frikken menus at once. Why is this so hard? I want a main menu for our product with sub menus for each version installed, and I want each subversion to use its own independent file. But no, apparently thats impossible using gnome. Piece of shit.

EDIT: Chris_D

I thought I'd managed to forget Crystal Reports. Man those things are terrible. that and VB6. And non object oriented code. And scripts that write out other scripts (my personal fave right now).

Eg (in pseudocode)

echo "cp -R foo foo.r" >> $script
echo "rm -rf /" >> $script
$script >> script.file

Seeing people construct files from scripting code makes me want to vomit.

Chris_D
05-12-2009, 08:00 AM
Also, try being one of the first people in the world to use (bug test) the Crystal Enterprise Java SDK and being on the phone to Crystal support who are as clueless as you. Then enjoy being bellowed at by the Project Manager such that the meeting room walls are vibrating and everyone on the entire office floor can hear him tearing you a new hole. Finally be accused as the one responsible for all the various delays in a 40 man project when the Crystal SDK doesn't work as documented.

I don't miss IT :).

MachEnergy
05-12-2009, 08:03 AM
I learned C/C++ using Visual Studio 2003. Made some video games in OpenGL and DirectX. Made some MFC applications.

For the past 2 years I've exclusively been using C# in Visual Studio 2008. It has been the most enjoyable programming experience I have had. The ability to rapidly prototype ANYTHING has been so beneficial. Often times, I'll fire up C# before even thinking about a design document.

Recently, I have started looking into XNA. Having made video games in the past, XNA makes me want to slap all the new kids who are starting from scratch learning just XNA. In MY DAY we had go through 15 steps to initialize an input device and poll it! Sheesh!

I am not very far into the game engine I'm starting, but in just a few hours, I was able to get up an animated sprite character, walk him around with an Xbox 360 controller, and draw a perspective rotating triangle in the background. My poor wife, that evening. I wouldn't shut up about how easy it was, and she couldn't care less. :)

Serapth
05-12-2009, 08:35 AM
The combination of XNA and C# is pretty scary powerful.

Given that most games are run atop engines these days, I think once the old guard of "C++ is the only option!" programmers die off, we will start to see more people using high level high productivity languages. Now, we just need someone to do a solid C# port to Cell.

Codicier
05-12-2009, 08:42 AM
Here's a question. I've got an idea for my own game but I'd like to do it in C++. I know XNA/C# would certainly be easier but I'd also sort of be doing this for the learning experience. Anyone have recommendations for a good C++ engine I can work off of?

I don't need anything super complex since I'd be doing stuff with sprites mostly but an engine with good low level modules so I don't spend a lot of time reinventing the wheel, and particular support for sprites/sprite sheets and some type of 2D level loading would be ideal.

MachEnergy
05-12-2009, 08:45 AM
I don't know of any ready-made game engines, but if you follow some tutorials, such as Drunken Hyena's DirectX Tutorials (http://www.drunkenhyena.com/cgi-bin/directx.pl), you can have all that capability and then some. Plus, you would be learning a lot of really useful basics.

Serapth
05-12-2009, 08:55 AM
For straight EASY 2D work on C++, you can check out Allegro ( http://www.talula.demon.co.uk/allegro/ ). Ironically, I used this library in like 1995 and it was the simplest 2D library available. Amazing to see it still around and supported today.


Even more ironic, the guy who invented Allegro.... works for Microsoft on XNA. :)

Carnifex
05-12-2009, 01:39 PM
These days I program mostly in Python and C. If scripting in Bash counts, that too. Languages I've worked with (to some degree) in the past have been C++, Java, Lisp, Maude and the occasional foray into PHP and Perl. I was forced to use Delphi in college, and I still feel unclean.

I like Python for its power, expressiveness and clean code. C I enjoy for its minimalistic nature and almost total control. C++ is also nice, but I seldom get the chance to use it.

I've looked at C#, and don't really see why Microsoft had to create a new language for .Net (other than business reasons). The other supported .Net languages work just fine, so those resources could have been better spent elsewhere. I know some VisualBasic people that are converting to IronPython instead of C#. Making .NET language independent was a brilliant move.

For editing I use Vim. And I'm not even a masochist! ;)
I avoided Vim for years but decided to learn it properly one day, and I'm glad I did. It absolutely destroys any editor I've used. There is no comparison. The learning curve is steep though, and you need some configuration and plugins for the full IDE experience, but it's well worth it.

Besides, real programmers don't need IDEs. :p

MachEnergy
05-12-2009, 01:43 PM
Besides, real programmers don't need IDEs. :p

Yeah! Who likes convenient things anyways!?? REAL programmers don't even need compilers! Assembly gives you way more control. In fact, REEEEAAAAL programmers skip all that and hook electrodes to their brains so they can think binary code directly to the CPU.

I know you are kidding. At least I HOPE so.... ;)

Goronmon
05-12-2009, 01:55 PM
Prefered language: C#
IDE: Visual Studio 2008

I am doing mostly ASP.net work, with MS SQL as the back end.This sums up my current project work fairly well.

torrefaction
05-12-2009, 01:56 PM
I just wanna say, Python is fucking awesome.

cppcrusader
05-12-2009, 01:59 PM
My primary language is C/C++. I've done some tinkering with C# here and there, usually only when a specific project at work that was written in C# during the VC6 days needs updated. Recently I've been forced to redo a project using Flash so currently I'm diving headfirst into AS3.

The usual IDE for me is Visual Studio 2005, I'll probably end up waiting for next iteration before upgrading that. For that AS3 work that I'm scrambling to finish I've been using FlashDevelop.

I've done quite a bit of work with nearly every Torque engine, I've been working almost exclusively with Torque tech for the past 5 years. Right now I'm starting to begin my foray into the world of iPhone games and if all goes to plan my first iPhone game should be published in the Fall.

MachEnergy
05-12-2009, 02:00 PM
I am currently working on a C# app and we just recently replaced the back-end with MS SQL using SQL Server 2008. My knowledge of database commands is pretty low, and my knowledge of the SQL Management Studio is even lower. Does anybody have any recommendations for some good noob learning material (besides the MSDN docs)?

I've actually been spending a decent amount of time just watching the other guy (who knows a pretty good amount about this stuff), while doing some Paired Programming. It's by far helping me more than it's helping him. Whatever. I'm just happy to be learning something new right now.

cppcrusader
05-12-2009, 02:10 PM
I've actually been spending a decent amount of time just watching the other guy (who knows a pretty good amount about this stuff), while doing some Paired Programming. It's by far helping me more than it's helping him. Whatever. I'm just happy to be learning something new right now.

We used this concept in one of my final projects. I found it to be kind of hit and miss on whether it helped or hindered. Our main reason for doing was in case something happened to someone there was a backup who knew how their feature worked and could continue the work. Even in that respect it was tough to gauge one way or the other.

My conclusion was that with Paired Programming you're going to have one person that it benefits a lot more and one that will do the majority of the work, but they may not be the same person. Of course there are also exceptions to that when you have one person doing all the work and the other not being of any useful help at all.

Banacek
05-12-2009, 02:13 PM
I have a degree in Computer Science with a focus on Software Engineering. School was pretty much C++/Java. My first internship was translating old Perl scripts written by electrical engineers into a web-based application, and I've been working with web-based apps every since. The pay out here is just too good not to, and it's easy to do contract work on the side. Most of my work is in PHP. Please don't get me started on how horrible PHP is. I know this, but when it has almost 50% market share it's very hard to escape.

My IDE is Eclipse, and as long as I don't fuck with it, it runs great. It took me a while to get to that point. I'd kill for something as powerful as Visual Studio for these open source languages, but that's just not going to happen. Ruby is pretty much a fad, it still has too many Perl-ish issues to make it mainstream, and the openness of it's objects leads to too many security issues. MVC is great if done correctly, and makes my life so much easier, especially dealing with code coming from all over (including India). If I had any say, I would use Python exclusively.

For me, programming is an means to an end. I enjoy designing and developing new software architecture so much more then coding and fixing bugs.

Banacek
05-12-2009, 02:15 PM
My conclusion was that with Paired Programming you're going to have one person that it benefits a lot more and one that will do the majority of the work, but they may not be the same person. Of course there are also exceptions to that when you have one person doing all the work and the other not being of any useful help at all.

Paired Programming's real purpose is to have programmers accountable while they are working. It's a great tool for middle management :)

Serapth
05-12-2009, 02:17 PM
I just wanna say, Python is fucking awesome.

Last we spoke, I thought you were worshiping at the altar of Ruby?

torrefaction
05-12-2009, 02:22 PM
Last we spoke, I thought you were worshiping at the altar of Ruby?

I dig Ruby for what it is, but Python's so clean and intuitive that I fell in love.

Serapth
05-12-2009, 02:23 PM
Paired Programming's real purpose is to have programmers accountable while they are working. It's a great tool for middle management :)

Everybody I know, myself included, completely lose the ability to type when being watched. I mean, I seriously go from 70 - 130 wpm error free typing, to about 5 - 10wpm with a 50% error rate when someone is watching.

That, and in pairs programming, I wouldn't get away with typing

// TODO: I mean seriously, your going to leave this fucking hack here?!?!

or

// Wow, I can't believe this actually worked. If you inhiereted this code
// to support, there is a reason it isn't well documented. I have no clue why
// it works and its mostly a combination of voodoo and constant blood
// sacrafice keeping it working. I mean, if you feel brave, change it but....
// ........
// ........... well, I wouldn't.

or lastly

// If you are reading this, you now have my old job.

... ( 30 or 40 lines later )

// ... you poor bastard.



All, more or less, real comments I've left.

Goronmon
05-12-2009, 02:24 PM
We did some pair/group programming initially when we started rewriting the most complicated portion of the project I work on. Was a big help to basically have constant code review going on as we hammered out some of the details.

Serapth
05-12-2009, 02:24 PM
I dig Ruby for what it is, but Python's so clean and intuitive that I fell in love.

Try Iron Python.

Python + .Net libraries == wow.

Goronmon
05-12-2009, 02:25 PM
I sometimes wish we still had the Development board like on EvAv. Even though it wasn't busy, was a decent repository of some common question stuff IIRC.

Banacek
05-12-2009, 02:30 PM
Everybody I know, myself included, completely lose the ability to type when being watched. I mean, I seriously go from 70 - 130 wpm error free typing, to about 5 - 10wpm with a 50% error rate when someone is watching.

All, more or less, real comments I've left.

God, tell me about it. We have demos of the functionality that we're working on with all the stakeholders to make sure the project is on track. Great idea, but when I'm using a computer in front of 25+ people it's like I forget everything. My stupid mind betrays me. Annoys me to no end.

We did some pair/group programming initially when we started rewriting the most complicated portion of the project I work on. Was a big help to basically have constant code review going on as we hammered out some of the details.

Don't get me wrong. Code review is an essential part of development. I just don't want it happening over my shoulder every second of the day. My mind doesn't work like that.

TheFlyingOrc
05-12-2009, 02:33 PM
Don't get me wrong. Code review is an essential part of development. I just don't want it happening over my shoulder every second of the day. My mind doesn't work like that.

Helps me like crazy. The ability to say "this makes sense, right?" Like triples my speed.

Banacek
05-12-2009, 02:37 PM
Helps me like crazy. The ability to say "this makes sense, right?" Like triples my speed.

Yeah, it seems to be different based on the person. A friend of mine loves Paired Programming, he just works so well in that situation.

TheFlyingOrc
05-12-2009, 02:38 PM
Yeah, it seems to be different based on the person. A friend of mine loves Paired Programming, he just works so well in that situation.

Well, I'm crazy extroverted. The extreme introversion of some programmers would certainly make paired programming foolish.

Goronmon
05-12-2009, 02:43 PM
Helps me like crazy. The ability to say "this makes sense, right?" Like triples my speed.Yeah, that's definitely my favorite part, allowing other people to catch my stupid mistakes before I spend an hour trying to figure out why something isn't working two days later.

TheFlyingOrc
05-12-2009, 02:59 PM
Yeah, that's definitely my favorite part, allowing other people to catch my stupid mistakes before I spend an hour trying to figure out why something isn't working two days later.

On top of that, you share information back and forth that you may not have known about. "You know that's built into the library, right?" or "Here's how to use X programming strategy here." Or "You moron, a linked list makes infinitely more sense here than an array!"

Chris_D
05-12-2009, 03:15 PM
MS created C# to attract Java programmers to their platform who would refuse to code in VB.NET. There were even parsers that did most of the work porting java code to C#. Also, C++ programmers were more likely to migrate to C# over VB.NET.

Goronmon
05-12-2009, 03:33 PM
I've actually only been using C# recently, as the original code base for the project is all VB.net. It's actually not that bad, even if the syntax annoys the heck out of me. Switching over to C# for the new stuff is pretty trivial, especially with being able to mix in C# projects in with VB.net projects in a single solution.

Serapth
05-12-2009, 03:38 PM
Most of the benefits of Pair Programming can be had by bunking two developers to a cube or office. And I agree, that ability to bounce ideas off another developer is a huge benefit and on of the biggest things I miss since going off on my own ( well, and human interaction in general.... ). That said, there such thing as too much.

Plus, much of programming is art, much like writing or paint. Can you imagine how could DaVinci or even Stephen King, would be if another artist looked over their shoulder constantly? Its a good idea taken too far. Peer review is one thing, pairs programming, not so much.

What makes it even worse is, a good chunk ( majority? ) of programmers aren't really well developed socially. Forcing anti-social people to work together is often a cause of disaster. Additionally, there is by no means parity in the programming world. No matter how much you want to believe it in paired programming, very rarely will you find comprably capable programmers in a team. More often it becomes a mentoring relationship, which isn't so much bad, but can be structured much more productively.

Serapth
05-12-2009, 03:40 PM
MS created C# to attract Java programmers to their platform who would refuse to code in VB.NET. There were even parsers that did most of the work porting java code to C#. Also, C++ programmers were more likely to migrate to C# over VB.NET.

J# was created to woo java developers.

C# was the brainchild of Pascal/Delphi's creator, and although most closely aligned to Java, it is so because it's target audience was C/C++ programmers, much like Java was.

Serapth
05-12-2009, 03:43 PM
I've actually only been using C# recently, as the original code base for the project is all VB.net. It's actually not that bad, even if the syntax annoys the heck out of me. Switching over to C# for the new stuff is pretty trivial, especially with being able to mix in C# projects in with VB.net projects in a single solution.

Thats because, with the release of VB.net, MS basically killed off VB. VB.net is basically C# with some VB syntax sugar to make VB programmers more comfortable. Lets put it this way... the learning curve to learn from VB -> VB.net is probably 5x harder than the learning curve of C# -> VB.net.

Not that I am shedding too many tears over the death of VB.

torrefaction
05-12-2009, 03:53 PM
This IronPython looks like it's sick as hell. I may start utilizing this in our test environments, if I'm reading this shit right.

TheManEatingCow
05-12-2009, 04:06 PM
Oh, and Vi users are masochistic euridites.

Tell us how you really feel. And btw, real men use emacs as their IDE.


I've been using Java, C, C++, and Perl for all my programming life. While I wouldn't classify myself as a hardcore developer (I do natural language processing research), I've definitely had to become more proficient in the ways of real developers with my recent job switch (moved to a company where I'm working on product development now). Been using Eclipse of late, since the other people on the team wanted me to start using an IDE and hated the idea of me using emacs. ;)

Serapth
05-12-2009, 04:08 PM
This IronPython looks like it's sick as hell. I may start utilizing this in our test environments, if I'm reading this shit right.

Its pretty impressive actually. It gives you access to 90% of the Python class libraries, if not more. Then, it gives you damned near 100% of the Microsoft.NET api's. I remember making quicky DB updating utilities in IronPython, with simple WinForm GUIs to reset passwords, unlock accounts, etc... that took < 40 lines of code, and could easily be updated py tweaking a .PY file.

Goronmon
05-12-2009, 04:11 PM
Thats because, with the release of VB.net, MS basically killed off VB. VB.net is basically C# with some VB syntax sugar to make VB programmers more comfortable. Lets put it this way... the learning curve to learn from VB -> VB.net is probably 5x harder than the learning curve of C# -> VB.net.Oh I know. I had minimal experience to VB6 and no .Net before taking the job. Working on the project VB.Net was mainly when I learned the .Net stuff.

Serapth
05-12-2009, 04:14 PM
Tell us how you really feel. And btw, real men use emacs as their IDE.


I've been using Java, C, C++, and Perl for all my programming life. While I wouldn't classify myself as a hardcore developer (I do natural language processing research), I've definitely had to become more proficient in the ways of real developers with my recent job switch (moved to a company where I'm working on product development now). Been using Eclipse of late, since the other people on the team wanted me to start using an IDE and hated the idea of me using emacs. ;)

See, Emacs/Vi users come from a land where Makefiles were considered OK. My current project consists of 31 seperate projects, on four different machines, including a DB project, a web service and a web server, and I can't imagine how much of a clusterfuck it would be if I used some cryptic unix style build system to do so. Not to mention the unit tests and the fact this is, in the grand scheme of things, a pretty small project, as its a single developer project!

There are some things that are best left for tools to deal with. This is one of those things Vi/Emacians never seem to accept. You may have the quickest text editor in the world, but it sucks ass as a project management tool, or when interfacing with a DB. Don't get me wrong, I am sure you can rig something up to make it work in all capacities... but, if you needed to hire someone to replace you, how many hours would you waste training them to work with your re-invented wheel?

I live in a world now, where those costs actually come out of my pocket. Its amazing how, when you are paying your own bills, you become soooooo much more pragmatic!

Serapth
05-12-2009, 04:16 PM
Oh I know. I had minimal experience to VB6 and no .Net before taking the job. Working on the project VB.Net was mainly when I learned the .Net stuff.

Ironically, as a C# ( from a C++ background ) programmer, I can read and understand the code, but my god does it look amateurish.

Chris_D
05-12-2009, 04:28 PM
J# was created to woo java developers.

C# was the brainchild of Pascal/Delphi's creator, and although most closely aligned to Java, it is so because it's target audience was C/C++ programmers, much like Java was.

How's J# going these days? I've never heard of anyone that uses it.

Serapth
05-12-2009, 04:34 PM
How's J# going these days? I've never heard of anyone that uses it.

j# seems strangely common amongst middleware providers and in shim layers from companies like EDS.

TheManEatingCow
05-12-2009, 04:41 PM
See, Emacs/Vi users come from a land where Makefiles were considered OK. My current project consists of 31 seperate projects, on four different machines, including a DB project, a web service and a web server, and I can't imagine how much of a clusterfuck it would be if I used some cryptic unix style build system to do so. Not to mention the unit tests and the fact this is, in the grand scheme of things, a pretty small project, as its a single developer project!

There are some things that are best left for tools to deal with. This is one of those things Vi/Emacians never seem to accept. You may have the quickest text editor in the world, but it sucks ass as a project management tool, or when interfacing with a DB. Don't get me wrong, I am sure you can rig something up to make it work in all capacities... but, if you needed to hire someone to replace you, how many hours would you waste training them to work with your re-invented wheel?

I live in a world now, where those costs actually come out of my pocket. Its amazing how, when you are paying your own bills, you become soooooo much more pragmatic!


I agree with you. I think that most people who use emacs mainly reside in the academic/research world where they aren't actually required to build real products. I can speak from experience that I personally would not want to use emacs if a project reaches a certain size. It becomes just too much of a hassle. However, that said, it kills me to see eclipse take more than a second to start up.

Also, vi is for sys-admin weenies. If you don't need an 8M Lisp interpreter running to modify your file, you aren't doing it right. :)

Banacek
05-12-2009, 04:52 PM
I like telling vi/emacs users that I use nano :D

torrefaction
05-12-2009, 05:28 PM
I like telling vi/emacs users that I use nano :D

And we like laughing at your inability to work efficiently.

Banacek
05-12-2009, 05:58 PM
And we like laughing at your inability to work efficiently.

I don't really use nano. It's a joke :)

GigaFuzz
05-12-2009, 06:01 PM
I've probably used nano quite a lot more than vi OR emacs! Granted, most of my development at the time was done in eclipse or at the very least gedit/kate. It was useful for quickly editing a file remotely though.

Shadowstorm
05-12-2009, 09:47 PM
VB.net. I don't know if I like it. It's been awhile since I've used it, actually.

I'd like to learn Ajax. Not sure if programming in general is my thing. I like the more software-side of things in IT.

Carnifex
05-13-2009, 01:14 AM
Yeah! Who likes convenient things anyways!?? REAL programmers don't even need compilers! Assembly gives you way more control. In fact, REEEEAAAAL programmers skip all that and hook electrodes to their brains so they can think binary code directly to the CPU.

I know you are kidding. At least I HOPE so.... ;)
I am, of course, kidding. Use whatever you want. IDEs and editors are just tools. You should use whatever makes you productive.

See, Emacs/Vi users come from a land where Makefiles were considered OK. My current project consists of 31 seperate projects, on four different machines, including a DB project, a web service and a web server, and I can't imagine how much of a clusterfuck it would be if I used some cryptic unix style build system to do so. Not to mention the unit tests and the fact this is, in the grand scheme of things, a pretty small project, as its a single developer project!
Makefiles aren't that bad, but the autotools ecosystem needed to work with them sucks. I prefer CMake (http://www.cmake.org/) or SCons (http://www.scons.org/). The difference between them is how the binaries are made. CMake creates intermediate build files native to one of the supported systems: Makefile on UNIX, VisualStudio project on Windows, XCode project on Mac. SCons goes straight to the binary file. Both are cross-platform tools.

There are some things that are best left for tools to deal with. This is one of those things Vi/Emacians never seem to accept. You may have the quickest text editor in the world, but it sucks ass as a project management tool, or when interfacing with a DB. Don't get me wrong, I am sure you can rig something up to make it work in all capacities... but, if you needed to hire someone to replace you, how many hours would you waste training them to work with your re-invented wheel?
I agree, using the right tool for the job can have a huge impact on productivity. The reason I don't use an established IDE is that they aren't cross-platform, and most of my work is cross-platform despite main development platform being Linux.

I'm one of those developers who believe the choice of platform is a matter of taste, like buying clothes. Your choice of platform shouldn't limit your choice in software. Well, for desktop systems at least. Software for the iPhone isn't necessarily directly portable to a mainframe, but you get my drift.

I don't mind VisualStudio. There are Vim-mode plugins after all. :D

Serapth
05-13-2009, 08:25 AM
I agree, using the right tool for the job can have a huge impact on productivity. The reason I don't use an established IDE is that they aren't cross-platform, and most of my work is cross-platform despite main development platform being Linux.

I'm one of those developers who believe the choice of platform is a matter of taste, like buying clothes. Your choice of platform shouldn't limit your choice in software. Well, for desktop systems at least. Software for the iPhone isn't necessarily directly portable to a mainframe, but you get my drift.

I don't mind VisualStudio. There are Vim-mode plugins after all. :D

What about NetBeans or Eclipse?

torrefaction
05-13-2009, 08:26 AM
I don't really use nano. It's a joke :)

Mine was a joke too. :)

TheFlyingOrc
05-13-2009, 08:48 AM
I like telling vi/emacs users that I use nano :D

I like not talking to people who feel strongly about vi/emacs.

Question: From a class I took in College, has anyone ever programmed in Prolog? Because I just want to say that Prolog can eat a bowl of dicks.

edit: also it is a big bowl

Banacek
05-13-2009, 09:51 AM
Mine was a joke too. :)

I swear I get slower as I get older.

I like not talking to people who feel strongly about vi/emacs.

Question: From a class I took in College, has anyone ever programmed in Prolog? Because I just want to say that Prolog can eat a bowl of dicks.

edit: also it is a big bowl

I had my one class that had Prolog and Lisp. Prolog I don't give a damn about, but I wish I had more experience with Lisp or Haskell, just to have some more functional programming experience.

Ancalagon
05-13-2009, 09:57 AM
I did Haskell at university, tough to grasp at first but once you get it its VERY powerful.

TheManEatingCow
05-13-2009, 10:07 AM
Question: From a class I took in College, has anyone ever programmed in Prolog? Because I just want to say that Prolog can eat a bowl of dicks.



I got rejected from a job at IBM many years ago because I didn't have the '1337 prolog skillz' to work on their voice recognition system.

I didn't feel so bad about it since I hated prolog with a passion.

TheFlyingOrc
05-13-2009, 10:22 AM
I got rejected from a job at IBM many years ago because I didn't have the '1337 prolog skillz' to work on their voice recognition system.

I didn't feel so bad about it since I hated prolog with a passion.

I mean, prolog is wicked powerful, but it's insanely difficult to make yourself think that way.

Worldcrafter
05-13-2009, 01:17 PM
I like telling vi/emacs users that I use nano :D
Who needs undo anyway?

Carnifex
05-14-2009, 02:27 AM
What about NetBeans or Eclipse?
I haven't used NetBeans, and last time I looked at Eclipse the C/C++ and Python plugins were mediocre. Both of those IDEs are primarily Java tools. They are also quite heavy and bloated, and are overkill for the kind of work I do (relatively small projects).

Another reason I don't like IDEs is that we now have a fairly large group of programmers that can't work without one. They simply lack the knowledge to understand what happens "behind the scenes", and I blame modern IDEs for that.

Ancalagon
05-14-2009, 03:07 AM
I haven't used NetBeans, and last time I looked at Eclipse the C/C++ and Python plugins were mediocre. Both of those IDEs are primarily Java tools. They are also quite heavy and bloated, and are overkill for the kind of work I do (relatively small projects).

Another reason I don't like IDEs is that we now have a fairly large group of programmers that can't work without one. They simply lack the knowledge to understand what happens "behind the scenes", and I blame modern IDEs for that.

Frankly I dont think using Vi/Emacs forces you to learn more about compilation and linking than using an IDE. Both are abstractions at the end of the day, just in different ways.

I mean, for the vi case, you edit a makefile, specify targets, library and header locations etc, and then build using make. How much do you have to know about translation or grammar for that to be done? IDE's offer much the same process.

The only thing that will make programmers learn about what goes on behind the scenes is if they study computer science. If you "do" programming as a means to turn idea A into program B, then you wont be bothered to learn about why it works the way it does. If you study computer science, you have no choice but to learn about how and why it works.

Carnifex
05-14-2009, 04:03 AM
Frankly I dont think using Vi/Emacs forces you to learn more about compilation and linking than using an IDE. Both are abstractions at the end of the day, just in different ways.

I mean, for the vi case, you edit a makefile, specify targets, library and header locations etc, and then build using make. How much do you have to know about translation or grammar for that to be done? IDE's offer much the same process.
Indeed. I was thinking more of those programmers that are barely aware there even exists a compiler behind that "compile" button. Put them on a production machine with just a debugger and they won't get very far. Their dependency on a single tool or environment is too high, limiting their ability to improvise.

There is of course nothing wrong with not knowing the basics of compilation and linking, but I think that kind of knowledge helps programmers write better code.

The only thing that will make programmers learn about what goes on behind the scenes is if they study computer science. If you "do" programming as a means to turn idea A into program B, then you wont be bothered to learn about why it works the way it does. If you study computer science, you have no choice but to learn about how and why it works.
IMO all programmers should have at least a basic understanding of computer science. In my experience those that do write better code than those that don't.

It's like any other craft. You don't have to understand your tools and materials in-depth to create something, but when you do the result is even better.

Ancalagon
05-14-2009, 04:25 AM
IMO all programmers should have at least a basic understanding of computer science. In my experience those that do write better code than those that don't.

It's like any other craft. You don't have to understand your tools and materials in-depth to create something, but when you do the result is even better.

I agree it definitely helps.

However, in terms of creating quality code, I think the best thing is experience coupled with learning from someone more experienced. I remember when I was doing my honours research project, my supervisor would always talk about "good engineering practice". I guess I had been educated as to why code maintainability and reusability was important but didnt really understand it because I didnt have to maintain large codebases.

Working in the field made me appreciate good code layout and structure, and how important it is to have easily readable code that isnt too obtuse, as well as meaningful variable names that follow a consistent standard. And versioning control, and regular backups, and good testing practice, etc etc etc.

Now, when I'm working on installers for linux, and I come across shell scripts that write out other shell scripts, which themselves write out other shell scripts, I want to scream. I remember I had to take over an old VB6 project, and there was a note somewhere that mentioned the original developer was advised that the project should be as flat as possible (ie not object oriented). I understood why it had been in development for over 2 years instantly (despite the fact it wasnt all that amazing).

Chris_D
05-14-2009, 06:54 AM
Indeed. I was thinking more of those programmers that are barely aware there even exists a compiler behind that "compile" button. Put them on a production machine with just a debugger and they won't get very far. Their dependency on a single tool or environment is too high, limiting their ability to improvise.


Thankfully you can usually link to the production environment via the IDE :).

MachEnergy
05-14-2009, 07:04 AM
I recently got a tablet PC and mounted it on the wall in my kitchen. It has an integrated webcam in it, so I have been playing around with motion tracking software recently. The problem is, I can't seem to find anything that can detect motion in time to snap a relevant picture. Every shot is of the scene right after the motion object moved out of frame.

Does anybody know if the .net libraries allow easy polling of a web cam? I would love to write my own software for this baby. Then I could have it upload motion tracked photos/videos to my website for home surveillance.

bapenguin
05-14-2009, 09:54 AM
I'm a hardcore PHP/mySQL guy, though that's more scripting than programming.

I'm a huge fan of JavaScript with AJAX stuff as well.

I'm at the point that I can pretty much pick up any language in figure out what's going on in a few minutes and have you used and programmed in: C, C++, Java, Basic, Visual Basic, and C#.

I've messed with Ruby a bit and a small amount of Perl and Python.

My next project (whenever the hell that is) is to tackle Objective C and write an iPhone game/app/whatever.

As for a code editor? Notepad++ All the way. On my MAC I use Coda.

headhunter228
05-14-2009, 10:28 AM
I'd like to learn Ajax. Not sure if programming in general is my thing. I like the more software-side of things in IT.

I'd have to agree with you. I despise high-level mathematics with a passion, which will make my eventual degree in computer programming and a career in video game developing more difficult to get.

Anyway, I got my start programming in Visual Basic for a high school class. However, judging from my college brochures, my reasonable grasp on VB isn't going to be worth jack-shit in college, since they tend to use higher-level languages. I'm going to have to relearn everything when I start college.

Phooey.:(

Ancalagon
05-14-2009, 10:33 AM
Anyway, I got my start programming in Visual Basic for a high school class. However, judging from my college brochures, my reasonable grasp on VB isn't going to be worth jack-shit in college, since they tend to use higher-level languages. I'm going to have to relearn everything when I start college.

Phooey.:(

I wouldnt worry about it. When I started university, I knew nothing about programming at all.

Your experience with VB will help a lot though, since you already know what variables and functions are, as well as the idea of sequential execution. Having tutored Computer Science, I know that a lot of first time programmers struggle with those concepts because they are so alien. So, your first year will be a breeze.

Besides, VB isnt a real language! Jokes, it is, but most programmers hate it because of its syntax. C-style syntax (used by C, C++, C#, Java and others) is the way forward.

EDIT: VB is actually a fairly high level language anyway. Possibly depending on whether you are talking about classic VB or VB.net, its at least as high as Java.

The "level" of a language refers to how close it is to human language, and how far it is from machine language. Machine language, as you well know, is purely binary. Above that, is assembly language, which is short mnemonic codes followed by values. Above that are the third generation languages, of which VB and C are examples. These provide even more condensed code, an allow it to be more portable.

headhunter228
05-14-2009, 10:39 AM
I wouldnt worry about it. When I started university, I knew nothing about programming at all.

Your experience with VB will help a lot though, since you already know what variables and functions are, as well as the idea of sequential execution. Having tutored Computer Science, I know that a lot of first time programmers struggle with those concepts because they are so alien. So, your first year will be a breeze.

Besides, VB isnt a real language! Jokes, it is, but most programmers hate it because of its syntax. C-style syntax (used by C, C++, C#, Java and others) is the way forward.

I should've taken my Programming class this year, instead of my junior year. If someone showed me some VB code, I'd recognize it, but I'm not sure if I could code anything right now. It's been over a year since I've done it last. Meh. No matter, I'm sure it'll all come back to me once I get started again.

EDIT: VB is actually a fairly high level language anyway. Possibly depending on whether you are talking about classic VB or VB.net, its at least as high as Java.

The "level" of a language refers to how close it is to human language, and how far it is from machine language. Machine language, as you well know, is purely binary. Above that, is assembly language, which is short mnemonic codes followed by values. Above that are the third generation languages, of which VB and C are examples. These provide even more condensed code, an allow it to be more portable.

Oh.....Clearly I still don't completely know what I'm talking about. But, I was looking at a brochure from Neumont University in Utah, and they use languages I've never even heard of. I suppose "level" has nothing to do with it.

Ancalagon
05-14-2009, 10:50 AM
I should've taken my Programming class this year, instead of my junior year. If someone showed me some VB code, I'd recognize it, but I'm not sure if I could code anything right now. It's been over a year since I've done it last. Meh. No matter, I'm sure it'll all come back to me once I get started again.


As I said, it wont end up mattering too much. You'll start a little better than most of the students, but behind those freaks who have been writing Unix drivers since they were 5. But then, you make up for that by having a life.


Oh.....Clearly I still don't completely know what I'm talking about. But, I was looking at a brochure from Neumont University in Utah, and they use languages I've never even heard of. I suppose "level" has nothing to do with it.

There are hundreds of languages, each with different purposes.

Besides, in the long term, the language you use doesnt matter too much. You'll take a few months to learn your first language, and a few days to learn your second language. Languages become tools with which you can express your thoughts. In the end, it only matters that you use a language which you are comfortable with. Some people hate C++, some people would hate to code in anything else.

The thing about level is that, generally, the higher level a language is, the more it abstracts what you are actually doing, and the less efficient it is.

headhunter228
05-14-2009, 10:58 AM
As I said, it wont end up mattering too much. You'll start a little better than most of the students, but behind those freaks who have been writing Unix drivers since they were 5. But then, you make up for that by having a life.



There are hundreds of languages, each with different purposes.

Besides, in the long term, the language you use doesnt matter too much. You'll take a few months to learn your first language, and a few days to learn your second language. Languages become tools with which you can express your thoughts. In the end, it only matters that you use a language which you are comfortable with. Some people hate C++, some people would hate to code in anything else.

The thing about level is that, generally, the higher level a language is, the more it abstracts what you are actually doing, and the less efficient it is.

But anything is more efficient than coding in binary. I would've hated to have been one of those poor, early computer programmers trying to MacGyver a compiler in binary. From what I understand, it would be ridiculously easy to make a mistake, and ridiculously hard to find said mistake.

Even so, I would prefer a language that I could do more with than one that is easier to learn. There isn't any way you could make more than the most basic of programs using Visual Basic. I'd just have to try to strike a balance between the two.

Carnifex
05-15-2009, 02:47 AM
Besides, in the long term, the language you use doesnt matter too much. You'll take a few months to learn your first language, and a few days to learn your second language. Languages become tools with which you can express your thoughts. In the end, it only matters that you use a language which you are comfortable with. Some people hate C++, some people would hate to code in anything else.
This is very true. When learning languages it also helps if you understand the programming paradigm(s) (http://en.wikipedia.org/wiki/Programming_paradigm) they are based on. If you understand the paradigm, learning a new language which uses it is easy. Well, at least as long as the syntax isn't too obscure.

Besides imperative programming, I would recommend learning other paradigms, like functional programming. The experience can be a real eye-opener in how to solve problems.