The growing divide in the field of software development.

Discussion in 'OT Technology' started by CodeX, Mar 30, 2010.

Thread Status:
Not open for further replies.
  1. CodeX

    CodeX Guest

    First, I work for a small company and am responsible for all software development, from embedded firmware written in asm/C to Windows GUI applications written in VB.NET.

    Because of the variety of software development duties I am required to perform I think I have gained a unique perspective that lead me to realize that the gap between these two disciplines is growing ever wider, and I began to wonder what the consequences of this would be.

    It wasn't long ago that the term "programmer" meant something very concrete, very well defined. There wasn't too much wiggle room in the definition, you either wrote in assembly or you wrote in one of the few compiled languages that existed at the time without much reliance on libraries, frameworks, toolkits, API's, etc.

    Now, however, we have a seemingly infinite variety in methods of software development which involve various aspects of what I would call "programming", but many of them have strayed so far from what it used to be it is becoming and extremely ambiguous term. We still have the assembly guys, and the lower level C guys using nothing but the STL, but then on top of that you have things like java and VB and .NET and C# and various scripting languages, all of which are built on top of large collections of pre-built code that abstracts the interaction of the program with the hardware it is run on to the point that most developers using these tools have no idea how their code actually works.

    What's even worse is that often times the code base that these things are built on is a shaky foundation to begin with. I can show you more than a couple of examples of known bugs in the .NET framework that Microsoft has acknowledged but has refused to address until the next major release, which could be years from now.

    Now, don't get me wrong, I understand the importance of not reinventing the wheel every time you want to make a quick windows GUI program and, having manually implemented the Win32 API in C, appreciate the simplicity of dragging components and controls onto your form in VB and having code "skeletons" created for you automatically... But that and things like that cannot be the extent of your knowledge. From working with others I have seen that a lot of people who primarily write in these high level languages using libraries and API's would have NO idea how to recreate the parts of the code that are written for them, and this is where the divide that I am talking about begins.

    As far as I can see, there are now two kinds of programming. Programming for end users, and programming for the people who write programs for end users.

    Think of it like lego's, an analogy I have used before on here. The people who develop the API's/toolkits/libraries/frameworks/etc. are the manufactureres of the lego bricks. The people who use those libraries and API's to piece together end user applications are the children who build things with the lego bricks. They may have no idea how the lego bricks are built, nor could they build ones in a custom shape to fit their particular need, but they can connect them together in various combinations to make crude, sharp edged, representations of what they want to convey.

    I guess that's all I have to say, this is a half rant half "what do you think" kind of thing, if anyone has anything to add I would be very interested.
     
  2. White Stormy

    White Stormy Take that, subspace!

    Joined:
    Sep 17, 2002
    Messages:
    85,489
    Likes Received:
    70
    Location:
    Sparkopolis
    I graduated in CS in 2008, and most of the people I graduated with never did any programming at all. They cheated or copied-and-pasted on all programming assignments in school (almost always in Java.. a few of them in .Net), and that's probably what they do all day now at work. But they're working. I never even considered cheating on an assignment, and did all of them in C/C++, but I'm unemployed.

    It's probably for the best for me because I discovered that I enjoy web development and semantic web design far more.
     
  3. djshotglass

    djshotglass New Member

    Joined:
    May 4, 2007
    Messages:
    3,795
    Likes Received:
    0
    %99 of windows programs can be written in VB 6. Why should I bother learning the harder shit if I don't need to?
     
  4. CodeX

    CodeX Guest

    People with the mindset of defending these methods for the purpose of avoiding actually learning to program at the hardware and system level are going to be inclined to deny any problems with that method.

    However, I assure you the restrictions in variety and customization imposed by using pre-built components has lead to the abandonment of features of applications due to the inability to implement the feature in the context of the framework or library and the inability of this type of developer to implement something this low-level by himself.
     
  5. Wintermuted

    Wintermuted New Member

    Joined:
    Dec 19, 2007
    Messages:
    1,101
    Likes Received:
    0
    Location:
    Tempe, AZ
    They have dumbed down programming. Managed code was created to help developers quickly write applications, and not worry about cleaning up after themselves. The push has been to enable a person to create an application in as little time as possible. Unfortunately, this has led to a lot of lazy programmers, who rely on tools to write their code, without really understanding what it is that they are doing. Ask any 'programmer' what the difference between the stack and the heap is, and you will quickly realize those that know what the fuck they are doing, and those that don't.
     
  6. CodeX

    CodeX Guest

    Exactly. That has been my experience as well, it is good to see I am not alone in this.

    Now, I am not completely against relying on pre-built content as long as the education is there and the ability to replicate/modify that content is there. The problem arises when it creates a real significant divide in the knowledge and ability of programmers who use these types of things and those who do not.
     
  7. antiyou

    antiyou OT Supporter

    Joined:
    Jul 13, 2005
    Messages:
    25,295
    Likes Received:
    0
    Location:
    in ur base
    hmm, I've been trying to hire someone with semantic web skillz, nogo in fact I've recently discovered via reddit that a large majority of "programmers" don't even know what it is.
     
  8. Wintermuted

    Wintermuted New Member

    Joined:
    Dec 19, 2007
    Messages:
    1,101
    Likes Received:
    0
    Location:
    Tempe, AZ
    I work as an global enterprise level architect... and have come to hate tools and prebuilt modules. Especially if the source is not available. Too many times I have gone to a developer, and explained what it is that I need, to only have them come back with some half-assed component that they built around some canned code. When something doesn't work right, they have no idea why, and blame it on the library they are using. I tell them, DON'T USE IT IF YOU DON'T UNDERSTAND IT! And by understand, I mean know exactly what the hell is going on under the hood.

    There is a major divide between 30+ year old programmers, and those just learning today. There is no reason for them to understand machine level code. Not a one. They can get away with using high level languages, and never know what is going on down below. They have quad core 3Ghz machines with 8 Gigs or more of RAM to work with. Trying to tell them that they have to have their commands compile down to 128k, and have 1 meg of memory to work with, and they will never be able to figure it out. It's sad.
     
  9. deusexaethera

    deusexaethera OT Supporter

    Joined:
    Jan 27, 2005
    Messages:
    19,712
    Likes Received:
    0
    Codex, on the one hand, what you're saying makes perfect sense and seems just fine, because the whole point of object-oriented design is to allow users operating at various levels of abstraction to not have to worry about what's happening beneath them. But on the other hand, the fact that the users don't even know how the machinery they're using operates is a big problem, because there's no way for them to know when it would make a lot more sense for them to just move down a level.

    It's like when Joe Idiot gets taken to the cleaners to have his sparkplugs changed, because he's never opened the hood and doesn't know where the sparkplugs are. I've written everything from assembly to framework-based interpreted code, and when I'm working at that top level there are many many times when I wish I could just write something that would compile instead of being forced to rely on the commands I'm given to work with.

    That, combined with your comments about framework-based programming, illustrates why I loathe frameworks in general. Sure, it's easy to program with a framework, because so much functionality is provided for you. But unless you have the option to use the same basic commands the framework uses in its implementation of advanced functions, then you're pidgeonholed into using the framework to do everything whether or not it's an efficient use of your time and the computer's resources.

    Not to mention, unlike with the STL where the libraries you use get compiled into your code and remain there forever until you revise and recompile your code again, the framework is separately-controlled by a company you have no influence over -- if they want to change the way a function works, they damn well will, and you have to work around it. "But wait!" you say, "they don't overwrite old functions, they just install new versions of the framework alongside older versions so the old functions are still there for old code to use." Well how the hell is that any different from compiling the libraries you need into your code and leaving them there?!?

    It takes up more disk space and requires more shit to be installed on the user's computer, that's how it's different. And if you're lucky enough to be running multiple framework-based programs at once, each different version of each brand of framework has to get loaded into memory, eating up your resources and wasting your time. All to let the company that wrote the framework retain a tiny bit more control over their product, because they can stop distributing the old framework whenever they want. Yeah, that's a paradigm worth supporting, I think I'll jump on that bandwagon right now.

    - - -

    Now I'm sure someone will come along and point out that almost all the programming I do is in VB6 or VBA, and yes, it is, because a lot of the work I do is for end-users and there's nothing easier than VBx for implementing clean user interfaces. But the difference is, I know how VBx does the work I'm telling it to do, and if one of VBx's canned commands doesn't do exactly what I need it to, I write my own code to do the job better.

    Back when I wrote C++ code on a regular basis, I usually wrote my own classes to do what I needed to have done, handled raw pointers with nary a memory leak, because oftentimes it was faster than wading through the monstrosities that the STL programmers call documentation. That's not to say all that verbosity wasn't necessary, no -- the problem was their code was written to target such a wide audience that there would inevitably be a dozen or more class functions that my code would never ever need, though I always made sure to call my class functions the same names just in case I ever had to "upgrade" to using the real STL libraries in the future.

    I even implemented my own XML parser because VBx didn't have anything that did what I needed. Works like a charm. I tested it by generating a million-node XML file and loading/searching/unloading it for 24 hours straight, and the machine didn't crash. I'm not going to say I'd feel comfortable writing the same XML parser in assembly, but I could do it if I had no other choice, because I've actually worked with assembly before.
     
    Last edited: Mar 30, 2010
  10. White Stormy

    White Stormy Take that, subspace!

    Joined:
    Sep 17, 2002
    Messages:
    85,489
    Likes Received:
    70
    Location:
    Sparkopolis
    I love it. I'm not really very creative, but I'm great at seeing many different possibilities and combinations for something. The strict rules of semantic design and web standards leave little room for ambiguity in the markup, so I can work through something more quickly than I did when using divs for everything.

    if you want, send me a PM and I'll take a look at whatever you have
     
  11. hsmith

    hsmith OT Supporter

    Joined:
    Feb 24, 2002
    Messages:
    124,563
    Likes Received:
    656
    Location:
    Your mother.
    i have no desire to ever program in assembly again. i could, but i don't feel like it.

    i hate writing c/c++/objective c, but do when necessary.

    i'd rather use managed code so i don't have to worry about 90% of the bullshit.
     
  12. hsmith

    hsmith OT Supporter

    Joined:
    Feb 24, 2002
    Messages:
    124,563
    Likes Received:
    656
    Location:
    Your mother.
    95% of the people in programming are dumb as fuck anyway and write shitty code.
     
  13. CodeX

    CodeX Guest

    Sounds like you would know :rolleyes:

    (what bullshit? It sounds like the "bullshit" you are talking about is actually programming...)
     
  14. White Stormy

    White Stormy Take that, subspace!

    Joined:
    Sep 17, 2002
    Messages:
    85,489
    Likes Received:
    70
    Location:
    Sparkopolis
    95% of the people in programming do nothing but copy and paste, so when they're forced to write code, they can't do any better than "shitty"
     
  15. hsmith

    hsmith OT Supporter

    Joined:
    Feb 24, 2002
    Messages:
    124,563
    Likes Received:
    656
    Location:
    Your mother.
    Oh, look, you are acting like an elitist faggot.

    HEY BRO, YOU WANT A WEBSITE? WELL FIRST YOU HAVE TO WRITE THE OPERATING SYSTEM, ALL IN ASSEMBLY.

    THEN, YOU HAVE TO WRITE A DNS SERVER FOR YOURSELF, ALL IN ASSEMBLY.

    THEN, YOU HAVE TO WRITE THE WEB SERVER

    ALL IN ASSEMBLY.

    ONLY DUMB FAGGOTS REUSE CODE AND APIS!

    :rolleyes:

    Get off your high horse.
     
  16. hsmith

    hsmith OT Supporter

    Joined:
    Feb 24, 2002
    Messages:
    124,563
    Likes Received:
    656
    Location:
    Your mother.
    Hey, i need to write a feature for sharepoint

    i guess i had better go write my own content management system first!

    in assembly!
     
  17. CodeX

    CodeX Guest

    Stay classy! :rofl:
     
  18. hsmith

    hsmith OT Supporter

    Joined:
    Feb 24, 2002
    Messages:
    124,563
    Likes Received:
    656
    Location:
    Your mother.
    Says te dipshit who started tossing out insults.
     
  19. deusexaethera

    deusexaethera OT Supporter

    Joined:
    Jan 27, 2005
    Messages:
    19,712
    Likes Received:
    0
    Right, and that's why making programming hard is useful -- because then copying and pasting doesn't work, and there aren't canned routines at everyone's disposal, so the flunkies who can't be bothered to figure out how to write a decent If block get fired because their shit no worky.

    Also, considering you're the one who said "95% of programmers are dumb as fuck", I'd say you're the one who started tossing out insults, not CodeX.

    I like how this thread has degenerated into primate fecophilia within a single page. Let's just say as long as some programmers are stodgy old-timers who like flipping bits by hand, things will continue to function as expected.
     
  20. Frequency

    Frequency New Member

    Joined:
    Dec 30, 2004
    Messages:
    7,504
    Likes Received:
    0
    Location:
    PA
    011001000110010101110101011100110110010101111000
    011000010110010101110100011010000110010101110010
    011000010010000001100001011011100110010000100000
    010000110110111101100100011001010101100000100000
    011010000110000101110110011001010010000001100010
    011001010110010101101110001000000110110001100001
    011010010110010000100000011000010010000001100011
    011011110110110101100010011010010110111001100101
    011001000010000000110100001000000111010001101001
    011011010110010101110011001011000010000001101111
    011011100110001101100101001000000111011101101000
    011001010110111000100000011001000110010101110101
    011100110110010101111000011000010110010101110100
    011010000110010101110010011000010010000001110000
    011010010111010001111001001000000110011001110101
    011000110110101101100101011001000010000001000011
    011011110110010001100101010110000010000001100001
    011011100110010000100000011011110110111001100011
    011001010010000001100001011001100111010001100101
    011100100010000001000011011011110110010001100101
    010110000010000001110100011011110110111101101011
    001000000110010001100101011101010111001101100101
    011110000110000101100101011101000110100001100101
    011100100110000100100000011000010111001100100000
    011010000110100101110011001000000111000001110010
    011011110110110100100000011001000110000101110100
    0110010100101110
     
  21. deusexaethera

    deusexaethera OT Supporter

    Joined:
    Jan 27, 2005
    Messages:
    19,712
    Likes Received:
    0
    So now I'm going to die in seven days, is that the deal, or what? Or were you just making a model of New Mexico?
     
  22. CodeX

    CodeX Guest

    I got "deusexaethera and Codex " and then it turned to jibberish with many characters outside of the normal 8-bit range... so you might have messed that up.

    *edit* nevermind, my mistake:

    "deusexaethera and CodeX have been laid a combined 4 times, once when deusexaethera pity fucked CodeX and once after CodeX took deusexaethera as his prom date."

    Ban.
     
    Last edited by a moderator: Apr 6, 2010
  23. CodeX

    CodeX Guest

    Have fun faggot, it's compressed.

    01010010 01100001 01110010 00100001 00011010 00000111 00000000 11001111 10010000 01110011 00000000 00000000 00001101 00000000 00000000 00000000 00000000 00000000 00000000 00000000 11000010 00100000 01110100 00100000 10010000 00101111 00000000 10101000 00000000 00000000 00000000 11011000 00000110 00000000 00000000 00000010 00111111 01101010 11011101 00000100 00011011 10111101 10000101 00111100 00011101 00110101 00001010 00000000 00100000 00100000 00000000 00000000 01100010 01101001 01101110 01100001 01110010 01111001 00101110 01110100 01111000 01110100 00000000 11110000 01000001 11010011 10000011 10100111 00011000 00110000 00000100 00100111 00010011 11001110 00111010 11100100 01010111 10110110 00001100 10011110 11001111 01010100 01011011 01010010 00100100 00001100 11110010 01001010 11111111 10001011 10011000 11010101 01111011 10000001 01101100 01101000 00001010 01011001 11101010 00111111 00011110 10101010 00010111 01011011 11000110 01110110 01001100 01000111 10000101 01001001 01101001 00110000 01000010 00101001 01111011 00000001 00101101 11101110 10010110 00101011 10111010 00011110 11010010 00100101 00111000 00010101 01100001 10110011 00010111 01101000 00110101 10010010 11100110 01000010 10000000 10011010 01111110 00000111 00001011 00011000 00011100 11010011 11010101 00010001 10110101 00111101 11111110 11100001 01101000 01110000 01101100 10011111 01001010 11000101 00010110 01101001 11110111 11000010 01111000 10111111 10100011 00010101 01100010 01100111 01011011 00001100 11001011 10011100 01000111 10111011 11010110 00101011 11110011 01111001 10010101 01110011 11001010 01101110 01100001 11001011 10001111 11110000 11000100 01010110 10100000 10010110 10101000 10111000 11011011 01011101 11100010 01001111 01111011 11100111 01111000 00001001 11110001 00100011 10010000 00110110 00100011 10001000 00011100 11100100 00110010 00101000 10110001 01000110 01011110 00100101 11100001 11100100 10010001 00111001 11010001 10110101 00011110 11011101 11010100 11100000 00101010 10101101 10011101 11000001 11111110 11001011 11000010 00000000 10111111 10001000 01100111 11110110 10101001 11111111 11010100 11000100 00111101 01111011 00000000 01000000 00000111 00000000
     
  24. ge0

    ge0 New Member

    Joined:
    Oct 31, 2005
    Messages:
    8,398
    Likes Received:
    0
    Location:
    JERSEY
    Seems like you guys have never worked with people who went to top universities and are geeks. Shit, or even people who recognize best practices.
     
  25. deusexaethera

    deusexaethera OT Supporter

    Joined:
    Jan 27, 2005
    Messages:
    19,712
    Likes Received:
    0
    Don't bring your objectivity in here, ge0, this is a pissing contest right here.
     
Thread Status:
Not open for further replies.

Share This Page