Programming Forums
User Name Password Register
 

RSS Feed
FORUM INDEX | TODAY'S POSTS | UNANSWERED THREADS | ADVANCED SEARCH

Reply
 
Thread Tools Display Modes
Old Apr 8th, 2007, 12:11 PM   #11
Game_Ender
Professional Programmer
 
Game_Ender's Avatar
 
Join Date: May 2006
Location: Maryland, USA
Posts: 306
Rep Power: 3 Game_Ender is on a distinguished road
That is why I don't just major in computer science. I always get the sense that a lot of CS graduates don't realize how much business application programming sucks, or at least it appears to from the outside. For me it has always been coding software for use with physical systems: Robotic Arms, subs, and ground vehicles. Code size, quality and performance all matter there.
__________________
Robotics @ Maryland AUV Team - Software Lead
Game_Ender is offline   Reply With Quote
Old Apr 8th, 2007, 1:33 PM   #12
grimpirate
King of Portal
 
grimpirate's Avatar
 
Join Date: Sep 2005
Posts: 431
Rep Power: 4 grimpirate is on a distinguished road
Send a message via Yahoo to grimpirate
I'd like to point out an example from my own university studies Game_Ender regarding robot programming. In my Introduction to Mechantronics class our professor (not a very good one at that) was trying to impart to use how to program a particular type of processor called the Basic Stamp, which used Basic style code. However the cost of a Basic Stamp (or the model he wanted us to use) was somewhere around $70 not including the amount of additional things you had to purchase. I inquired how the Basic Stamp worked and he explained that it was basically a PIC chip that interpreted the Basic program stored on the additional RAM on the board. So I obviously asked, why not just use the PIC? His reply was that the Basic Stamp was easier to program and it reduced development time. I'm set in my ways so I said I'm just gonna buy the $2 PIC plus it's $30 programming board and create the circuits with that. The only difficulties I had were in setting up some circuits to operate a stepper motor, but that's because my knowledge of electrical engineering and how a bipolar stepper motor works was limited in that sense, and I was unable to find help on that subject from someone at my school. Most of the other engineering students had no idea what I was talking about. Of course we were also supposed to use a unipolar stepper motor, but I had the same problem with that as with the chips. Why would I use something that's more expensive and produces less torque given the same amount of power? My professor replied with development time, and a whole bunch of other nonsense. My favorite thing he said though was "look at Windows, the code is buggy and crashes and has tons of problems, but it's the leading OS" I was just stunned. I explained to him that solely based on the fact that I had designed equivalent circuits as everyone else and at roughly 1/20 of the cost I deserved an A, for being not only efficient, but also cost effective. Development time was the same for all of us, my shortcoming in the motor example would've been overcome if I had the knowledge to complete what I needed to. It wasn't a matter of the code. The timing sequence was actually correct, it was the electrical circuit to operate the motor that I couldn't figure out.

In a business setting I can understand why people might just want something that works and works now because the company may be able to spend the money to just improve their hardware. However, someone who owns a home computer might not have that option at their disposal. The fact is it's my RAM that's being used inefficiently, which in turn slows down my other applications and increases my paging cycles and all that other stuff. It costs me the efficiency of my computer. Just take a look at web programming like Reggaeton was saying. A friend of mine who works in IT one of his bosses saw a flash site and he became like a Flash zombie and was like "FLASH ON EVERYTHING" but what he doesn't realize is that Flash is memory intensive and takes time to download. Most of the sites I design don't use flash because I don't really see a need for it since I know there are still people out there who don't have DSL at their disposal. One person's lack of dedicating themselves to good coding practices in exchange for something "better" costs others.

I'm of the opinion that any program that is going to be distributed to large amounts of people should be coded for efficiency and optimal performance. If it's a one shot one deal prototype or something and you could use it sooner rather than later then doing that isn't so necessary.
__________________
Lo, there do I see my father. 'Lo, there do I see My mother, and my sisters, and my brothers. 'Lo, there do I see The line of my people... Back to the beginning. 'Lo, they do call to me. They bid me take my place among them. In the halls of Valhalla... Where the brave... May live... ...forever.. GrimBB | Mimesis
grimpirate is offline   Reply With Quote
Old Apr 8th, 2007, 2:07 PM   #13
kurifu
Expert Programmer
 
kurifu's Avatar
 
Join Date: Jul 2004
Location: Halifax, Nova Scotia (Canada)
Posts: 784
Rep Power: 5 kurifu is on a distinguished road
Send a message via ICQ to kurifu Send a message via MSN to kurifu
IR: I found a lot of my univeristy professors took the same approach with memory constraints, even the programming competitions we attended tended to require code which compiled and executed within so much time, and you would even be graded on a ratio of resources vs speed. I think everyone can agree though that coding with resource restrictions in mind requires a more challenging mindset, you need to be much more organized with your use of resources to be able to do this and anyone who learns to code efficiently can also code "inefficiently"; you learn more learning the first method.

One other point I am surprised has not been mentioned yet is that optimizing compilers have come a very long way over the last 10 years, and in more cases than not, tend to be more efficient at optimizing code on a low level, leaving the higher level algorithmic optimizations to the coder.
__________________
Clifford Matthew Roche <geek@cliffordroche.com>
Web Hosting: http://www.crd-hosting.com
Consulting: http://www.crdev-consulting.com
kurifu is offline   Reply With Quote
Old Apr 8th, 2007, 4:10 PM   #14
Sane
Programming Guru
 
Sane's Avatar
 
Join Date: Apr 2005
Location: Waterloo, Ontario
Posts: 1,890
Rep Power: 5 Sane will become famous soon enough
Send a message via MSN to Sane
Maybe things only look bad because you're looking in all the wrong places. What is right in front of our eyes... every day?

Google.

A multi-billion dollar industry. Google's quality is what has lead it to prosperity. Quality is leading the internet's greatest industry.

The companies who actually care, are the ones doing well. Those who do not, just won't last as long. That's the difference.

More examples: Youtube, Facebook.

Counter-examples: Hotmail, MySpace.
Sane is offline   Reply With Quote
Old Apr 8th, 2007, 5:58 PM   #15
kruptof
Professional Programmer
 
kruptof's Avatar
 
Join Date: May 2006
Location: UK - London
Posts: 330
Rep Power: 3 kruptof is on a distinguished road
I am not the most technically aware person but companies put misleading stuff in their advertisment to the publics, so i never really believed companies that say our stuff is more secure or it is more efficient than X[come on you need an example],

So if their programs are aimed at people like me then why would they care how memory or processor effecient their programs are because i just went down to those big chain computer stores and bought myself a core-dou processor and a gig of memory and the latest release of windows

And even if they do say to me use our program it's more secure and easy on your resource i wouldn't have a clue what they are talking about, i just want to be able do my spreadsheet stuff while i am listening to my music and checking my email.

Another company would properly be saying the same thing within a month or so, but be selling it at a cheaper price, how did they do this, i don't know.
__________________
Quote:
When I was young it seemed that life was so wonderful,a miracle, oh it was beautiful, magical.
Now watch what you say or they'll be calling you a radical,a liberal, oh fanatical, criminal. Oh won't you sign up your name,we'd like to feel you're acceptable, respectable, oh presentable, a vegetable
kruptof is offline   Reply With Quote
Old Apr 8th, 2007, 9:26 PM   #16
DaWei
Resident Grouch
 
DaWei's Avatar
 
Join Date: Jun 2005
Posts: 6,453
Rep Power: 10 DaWei is on a distinguished road
It's pretty straightforward. Say you've making a software product to run on existing desktop machines for the largest part of the market, non-technical people. How many of those people are actually running multiple processes? Even if they have several services running, the usage is minimal. You can pretty much use all the resources you expect to find on the average machine, which is plenty.

Your recurring cost for the product is distribution and support (if you offer support). Buying, burning, and shipping discs, or maintaining servers for download, or whatever, and a few low-grade techs for support. Not much.

Your cost of development is non-recurring; you can divide that cost, however much it is, by all the copies you wind up selling. Twenty thousand or two million. A quickly developed program is going to amortize one hell of a lot quicker, and be more profitable, even if it's not polished and minimal.

Quality is great (see my old signature), even primary in mission-critical software, but without performance, it starves people instead of feeding them. You have to shoot for balance and reality, or put yourself and your coworkers in the unemployment line. If you can't work it out, you'll not rise above code-monkey unless you win the lotto or inherit from someone else's hard work. I have pride in my work; it was better than the competition and fed me well. Undue pride or unduly costly goals may taste good, but they aren't very filling. Your investors will notice.
__________________
Abstraction doesn't make it impossible to write bad code; it makes it possible to write superior code.
Contributor's Corner: Grumpy on C++ Exceptions DaWei on Pointers
DaWei is offline   Reply With Quote
Old Apr 8th, 2007, 9:33 PM   #17
Baphomet
Retired Programmer
 
Baphomet's Avatar
 
Join Date: Jul 2006
Posts: 45
Rep Power: 0 Baphomet is on a distinguished road
Okay... Alot of great responses...

@DaWei: A perfect counter point. What you say is very true. If you slow down too much, you end up, as you put it "starving the public". There is still a balance. Take Google for example. Have you seen how they run things? Its quite strange. However, their end product is still very high in quality. It is more often that you see freeware of more quality (for obvious reasons.) But, there is still a balance between being obsessed with quality, and just tossing a product down in two seconds (take the "Enter The Matrix" game, for example; people didn't like it because it had so many bugs and was under developed - mostly because developers were so pressured)

Quote:
Originally Posted by reggaeton_king View Post
I see what you mean man! Here's my most recent experience:

Last project I had was to create a website that ran on a CD. When the project was announced, we had a month to design the site. I pulled out a pencil and paper, then sketched a couple of designs. After a few sketches, they finally agreed to a design. I opened up my programmer's notepad and started coding the HTML page and style sheet. After about a few hours, they asked me how's the site going and I told them I said I was stilling writing up the styling sheet.

Our Technology Specialist looked at me and said 'MS Publisher created websites too.' I said yeah, ever looked at the code and how slow it runs? Well, a week later I ended up making the website in Publisher. I was a little upset but thats what they wanted. Something fast and wanted it yesterday. Well, a week after. The rest of the work on the website was just errors in the style and wrong fonts appears and etc.

Now that I am talking about it. I would have taken me a little longer to create a nice style sheet and a good looking Web 2.0 site but apparently time is money! *ugh*

All my web programming in done in this application developed by Oracle called Application Express. It creates a web application in no time, maybe a few hours if that. Limited styles but my job uses no other tool but Application Express. I asked one of the guys one time if they ever thought about using C# or Java. He told me that there is a lot of coding just to get some simple results and the process of learning those language would take even longer. I just shut up and went back to my workstation. IT *sigh*.

I want to do Software Development business and program the right way. Seems like what people teach in school doesn't apply to businesses.
Exactly! This is one great example that I forgot to mention that I see all the time. We are often using platforms, languages, and RAD tools we shouldn't in order to get stuff done fast. But quality lacks greatly as a result.

Now I am not saying, by any means, that RAD tools and all that jazz should not be used all-together. We need to pick and choose where and when we use those tools. Most importantly, we need to choose an efficient tool if we do use a RAD system. Alot of these sites and programs can easily be written in virtually the same amount of time by hand, and if the programmer is well educated, that program will be of much better quality.

As Sane has stated, Google is a perfect example of how a quality made product is made popular. MySpace and Hotmail, are popular (to an extent) but they didn't get thier by having quality. Hotmail is mainly popular because of MSN and Microsoft. As we all know, Microsoft isn't popular because its the best system. Mr. Gates used many under-handed technics to get those systems where they are now.
Baphomet is offline   Reply With Quote
Old Apr 9th, 2007, 12:14 AM   #18
lostcauz
Hobbyist Programmer
 
Join Date: Nov 2004
Location: 1691 miles East of L.A.
Posts: 159
Rep Power: 4 lostcauz is on a distinguished road
Quote:
Originally Posted by Baphomet View Post
... programmers had quite a different mindset than we do now. You were taught to reserve resources. To make a program that was not only efficient with what it required, but it had to process at the fastest speed possible.

So, it seems companies adjusted to that, and had to become more competitive. Nowadays, I'll get new programmers in all the time telling me that they're so worried about getting there project done, and they're finished product will look good and function, but the code they produce looks horrible. Its much slower than it could be, and it will eat up resources faster than a nine-year old will with a bag of candy his dad just bought him. Its sad. But its a reality. It seems now, everyone is so caught up in the capitalist part of programming. No one really cares about making their program fast, or choosing a language that will do that for them. They only care about two things: time and money. What has happen to programming? Am I the only one with the old mindset? We're so bent on getting paid, we really could care less about what we produce, as long as it satisfies the boss.
Amen Brotha!!
__________________
-- lostcauz

Stepped in what?...
Behind whose barn?...
I didn't even know they had a cow!
lostcauz is offline   Reply With Quote
Old Apr 9th, 2007, 1:55 AM   #19
Jimbo
Battle Programmer
 
Jimbo's Avatar
 
Join Date: Feb 2006
Location: Bellevue, WA, USA
Posts: 766
Rep Power: 3 Jimbo is on a distinguished road
Quote:
Originally Posted by Baphomet View Post
As Sane has stated, Google is a perfect example of how a quality made product is made popular. MySpace and Hotmail, are popular (to an extent) but they didn't get thier by having quality. Hotmail is mainly popular because of MSN and Microsoft.
The popularity of MySpace and Hotmail is, as far as I can tell, mostly due to their efforts to make a certain service publicly available. MySpace somewhat pioneered the social networking idea (they may not have been the first, but they touched it off to an as-yet uncontested scope), and Hotmail is the first service that I can remember giving away free email service (again, they might not have been first, but they were around early on and the service was quality for the time). According to a guest lecture in one of my classes the other day (admittedly, it was by Microsoft's David Aucsmith), Hotmail/MSN remains the largest email provider on the web, with (IIRC) tens of thousands of emails per second.

Quote:
Originally Posted by Baphomet
As we all know, Microsoft isn't popular because its the best system. Mr. Gates used many under-handed technics to get those systems where they are now.
Hate to break it to you, but I'm not totally convinced of that. Many of Microsoft's products, especially after a couple versions, are typically much more feature rich than any others. That took a lot of development and testing, not all of which could just be acquried by said under-handed techniques.
__________________
<insert disclaimer here>
<insert shameless plug for Visual Studio here>
Jimbo is offline   Reply With Quote
Old Apr 9th, 2007, 10:21 AM   #20
Seif
Hobbyist Programmer
 
Seif's Avatar
 
Join Date: Jan 2006
Location: UK
Posts: 215
Rep Power: 3 Seif is on a distinguished road
I don't think its a change in mindset at all. Trade-offs between productivity and quality has always been a factor in development. The only difference is the shift on where these two balance.

If I can make an application that meets all the requirements using tools that can drastically reduce development time. It doesn't make me lazy or capitalist at all. If anything it makes me considerably more productive and pro-active. I can get involved in more projects, and I can get more projects done in a much quicker time. I don't want to waste time optimizing code efficiency if the increase of performance is negligable to the end user.

Yes I can write a web application that meets all the w3 standards using style sheets and test it for a wide range of web browsers. But if the requirement of the application was to run just in IE, then I'm doing some serious over engineering for absolutely no reason at all if I can meet the requiements in 1/10th of the time by using MS publisher.

You shouldnt feel upset for using such tools reggaetton. But its a common trend in programmers I see every day. I used to know a guy who used notepad because he was truely a hardcore one who needed to reinvent everything, and when he was asked to use an IDE of some sort he would really kick off. And to this day I still don't get why so many programmers have this attitude. Perhaps its the same as allowing your missus to hire contracters to do work on your house. The ego won't allow it, despite you know the final outcome will be better.

IMO this "defeatist" mindset for using RAD tools is the true problem for modern programmers.

PS.

In no way do i condone the use of MS Publisher btw, I'm just trying to set an example.
Seif is offline   Reply With Quote
Reply

Bookmarks

« Previous Thread in Forum | Next Thread in Forum »

Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Programming without post secondary education Eric the Red Other Programming Languages 6 Mar 7th, 2006 5:56 PM
Does Programming Make You Smarter? Sane Coder's Corner Lounge 43 Oct 2nd, 2005 6:12 AM
MIT's Metaphor For Software Programming Infinite Recursion Other Programming Languages 2 Jun 12th, 2005 6:42 AM




DaniWeb IT Discussion Community
All times are GMT -5. The time now is 3:17 PM.

Powered by vBulletin® Version 3.7.0, Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Copyright ©2007 DaniWeb® LLC