Go Back   SitePoint Forums > Forum Index > Program Your Site > General Development Issues
Newsletter FAQ Members List Calendar Mark Forums Read

New to SitePoint Forums? Register here for free!

SitePoint Sponsor
 
Reply
 
Thread Tools Display Modes
Old Apr 26, 2007, 06:14   #1
Manpasand
SitePoint Addict
 
Manpasand's Avatar
 
Join Date: Feb 2005
Location: Internet
Posts: 394
Difference between Web & Software Development

Is there any difference between web development and software development?
__________________
SEO Consultant | Travel Guide |
Manpasand is offline   Reply With Quote
Old Apr 26, 2007, 06:24   #2
drhowarddrfine
SitePoint Wizard
 
drhowarddrfine's Avatar
 
Join Date: Aug 2005
Posts: 3,433
Actually, no, not that I can think of. A web developer is one who creates software programs that work on the web. What a program works on makes no difference to a developer except the interface. In this case, it's the internet, servers and browsers. In other cases, it's a desktop/laptop computer or mechanical and other electronic devices.
drhowarddrfine is offline   Reply With Quote
Old Apr 26, 2007, 07:04   #3
dc dalton
SitePoint Wizard
gold trophysilver trophybronze trophy
 
dc dalton's Avatar
 
Join Date: Nov 2004
Location: Right behind you, watching, always watching.
Posts: 5,381
There are some differences, mostly language specific but I would also think (never done it myself) that a software developer needs to know an awful lot about the underlying operating system platforms and things like registry manipulation (in the case of Windows machines). With web development you really don't need to worry about that kind of stuff most of the time.

I'm a web applications developer and I have always thought my job (as opposed to a software developer) is a lot easier because I don't need to know most of that stuff. I still need to interact with the OS but not like them.
dc dalton is offline   Reply With Quote
Old Apr 26, 2007, 08:46   #4
chrisdpucci
SitePoint Zealot
 
chrisdpucci's Avatar
 
Join Date: Dec 2006
Location: On the internets
Posts: 191
There are some very profound differences in the way you have to approach a web application as compared to a desktop application mostly in the fact that desktop applications are usually more robust and require a higher level of programming expertise, (memory management, i/o stream control and advanced data structures, etc...).

As for programming theories, methods and models, they are almost identicle as you can apply good programming practices across the board.
chrisdpucci is offline   Reply With Quote
Old Apr 26, 2007, 08:57   #5
AutisticCuckoo
SitePoint Author
silver trophybronze trophy
 
Join Date: Nov 2004
Location: Åsnorrbodarna
Posts: 12,249
One major difference is that a web application is usually accessed via the HTTP protocol, which is stateless. You will either have to maintain state information on the server, or pass it along for each request (usually in a cookie).

This means a very different approach from ordinary desktop applications.
__________________
Tommy Olsson The Autistic Cuckoo
Ultimate CSS Reference: book & site
Be like the 22nd elephant with heated value in space – bark!
(gotta end this ding dong for the freesias)
AutisticCuckoo is offline   Reply With Quote
Old Apr 26, 2007, 11:34   #6
Vali
SitePoint Evangelist
 
Vali's Avatar
 
Join Date: Jun 2006
Posts: 592
it's like comparing a horse and a tractor.
You can get them to do pretty much the same thing, but when something breaks you can't really fix them the same way.
__________________
WWMad.com :: Mass Multiplayer Browser Game
Vali is offline   Reply With Quote
Old Apr 26, 2007, 12:00   #7
drhowarddrfine
SitePoint Wizard
 
drhowarddrfine's Avatar
 
Join Date: Aug 2005
Posts: 3,433
You have not shown any differences other than the interface. Whether it's the web or an OS or a vending machine, software is programmed the same, only the interface changes.
drhowarddrfine is offline   Reply With Quote
Old Apr 26, 2007, 13:20   #8
obrienkev
SitePoint Wizard
 
Join Date: Apr 2004
Location: dublin
Posts: 2,040
recently moved into software development field from web development. Just new at it and find designing applications the biggest difference. There doesn't seem to be much room for customisation like websites have with CSS.
So I'm finding it difficult to find how to create excellent looking applications.
obrienkev is offline   Reply With Quote
Old Apr 26, 2007, 13:26   #9
voodoomagic
SitePoint Zealot
 
Join Date: Mar 2007
Posts: 187
Web applications usually do different things. I wouldnt say that it requires less expertise, i think a real web programmer would know just as much as a desktop application programmer. not necessarily about systems and memory, but they would know more about security, and validating the user input.

web applications are stateless, and require alot more thought about security.

Web applications i think also do different things, where as a word processor for example is an application that the user is using to do something for themselves, and a web application is usually an online interface between a business and their clients.
voodoomagic is offline   Reply With Quote
Old Apr 26, 2007, 14:15   #10
nukeemusn
<code></code><WoW></WoW>
 
nukeemusn's Avatar
 
Join Date: Apr 2006
Location: Honolulu, HI
Posts: 329
There used to be a huge difference. Back before web "2.0", before "1.0" even. When pages were nothing more than HTML. HTML is not a programming language. It is a markup language. It's whole purpose in life is to describe content.

As time went on, people tried to make their pages look better. Enter the world of table-based design.

Then people wanted other people to DO things with their pages. Enter JavaScript, PHP, etc.

So in the beginning, they were two separate entities. Now, not so much.
__________________
My Blog
The Obsidian Order - WoW Guild on US-Nagrand
nukeemusn = Nuclear Electricians Mate US Navy
nukeemusn is offline   Reply With Quote
Old Apr 26, 2007, 15:42   #11
brandaggio
Brevity is greatly overrated
 
brandaggio's Avatar
 
Join Date: Dec 2005
Posts: 1,424
FWIW using Visual Studio (.NET) or Xcode (Cocoa) to develop a modern desktop app is not that hard in that it depends on how complex what you need to do is. It gets harder with increasing complexity of functionality and UI.

At the same time, if all you need is an intranet wiki, building it as a desktop app is not the most sensible choice - even if it was done it would be overkill.

Building a Photoshop clone is very complex - as Adobe will be proving not impossible to do on the web with RIA tools like Apollo or XUL or some use of Python, but a desktop app that has all that local horsepower still has some advantages for the time being if you really need to do something intensive.

For Apple, all your apps will look sorta like iTunes if you use Xcode well - which makes your app easy to pick up - a good thing. Same for .NET - the "canned" widgets, controls and layouts take some getting used to but you can make it slick with subtle gradients and whatnot - really look at those OS dialogs - they aren't that complex visually - mostly tabs, sliders and checkboxes.

It is a good point that you are limited cosmetically when using premade controls and layouts but you can still make a solid looking app. I think we will see the tools get better as far as what they offer in control and design.

Interestingly XUL, Apollo and .NET all do or will offer ways to have an offline and online mode so the separations between desktop and web apps will soon narrow to the point of nonexistence. You can build a web app that works on the desktop also (and syncs back up when online if need be) or a desktop app with lots of web functionality - the close to the metal issues like I/O taken care of for you.
__________________
Me on LinkedIn
My Last.fm
brandaggio is offline   Reply With Quote
Old Apr 26, 2007, 17:14   #12
tbakerisageek
SitePoint Addict
 
tbakerisageek's Avatar
 
Join Date: Sep 2006
Posts: 213
How has everyone missed the point of user accessibility? with regards to where the users can access the systems from... once you develop a web app, your users can access it from anywhere in the world. If you develop software that runs on a desktop, they must be in front of the computer (physically/virtually using some remote desktop technology)

Much to be said about security and protecting your assets when you develop for the web as well.
tbakerisageek is offline   Reply With Quote
Old Apr 26, 2007, 17:45   #13
Caldus
SitePoint Evangelist
 
Join Date: Apr 2003
Location: North Carolina, USA
Posts: 413
I agree with what other people are saying on here. I have been on both sides (web and software development). When you're a software developer, you typically have to know a lot more about the OS. Web applications are stateless too, so that is a big difference.
Caldus is offline   Reply With Quote
Old Apr 26, 2007, 18:19   #14
drhowarddrfine
SitePoint Wizard
 
drhowarddrfine's Avatar
 
Join Date: Aug 2005
Posts: 3,433
Once again. Everyone is trying to say web and software development are different due to the interfaces. I am saying there is absolutely no differences between the two. You write functions, create data, move information and the ONLY differences between programming the web and programming the desktop is the interface between your program and the device or object. Be it a screen terminal or the web or a robotic arm, it's all the same.

If you think that statement is wrong then answer this: if you write a program to output the display of a table of data, what is the difference between sending that data between a screen and the web or a handheld instrument or a cell phone? The only difference is the interface. Absolutely nothing else.
drhowarddrfine is offline   Reply With Quote
Old Apr 26, 2007, 23:13   #15
saJoshua
SitePoint Member
 
Join Date: Apr 2007
Posts: 1
Quote:
Originally Posted by Manpasand View Post
Is there any difference between web development and software development?
Web [application] development is a branch of software development. Desktop [application] development is another branch. Each branch has particular idiosyncrasies as well as best practises and caveats regarding design, development models and maintenance.

Quote:
Originally Posted by drhowarddrfine View Post
Once again. Everyone is trying to say web and software development are different due to the interfaces. I am saying there is absolutely no differences between the two. You write functions, create data, move information and the ONLY differences between programming the web and programming the desktop is the interface between your program and the device or object. Be it a screen terminal or the web or a robotic arm, it's all the same.

If you think that statement is wrong then answer this: if you write a program to output the display of a table of data, what is the difference between sending that data between a screen and the web or a handheld instrument or a cell phone? The only difference is the interface. Absolutely nothing else.
Due to the differing capabilities / limitations of each platform, different approaches are used to best leverage delivery / capture of information. Certainly these difference are most apparent on the interface level, but generally a software developer wouldn't be confined to building the data access layer or business logic layer and not be involved in the UI layer at all.

Often a developer will have strengths in a particular platform or range of platforms and recognizing this is key to selecting the correct project / candidate match.
saJoshua is offline   Reply With Quote
Old Apr 27, 2007, 01:03   #16
I87
Non-Member
 
I87's Avatar
 
Join Date: Mar 2006
Location: UK
Posts: 381
I think people in here are including html in with web programming
html is like... umm... windows forms to C#
I87 is offline   Reply With Quote
Old Apr 27, 2007, 01:14   #17
ceeb
SitePoint Addict
SitePoint Award Recipient
 
Join Date: Apr 2001
Location: Devon, UK
Posts: 341
I think the biggest fundamental difference in the two is that OS applications are client-based, whereas web applications are client-server based.

The languages used can differ - but not by much. After all, you can use PHP to develop a client-based application and, similarly, you can use C++ on your web server. Technologies such as .NET and Java are applicable to both platforms.

How you choose between web and OS depends on your requirements. There are certain things that OS apps do well (fast games, distributed processing, file handling) and certain things web apps do well (cross-platform, centralised data, multi-user).

But the boundaries are blurring. Many desktop apps have internet connectivity, and many web apps are offering facilities that were typically OS-based, e.g. GoogleDocs.

But it's not often you see programmers crossing from one platform to the other. In my experience, I would say that Windows developers have a harder time moving to web development than the other way round. I think that's primarily because:
  1. Web development uses a wider range of technologies, e.g. HTML, CSS, JS, PHP/.NET/Java/Ruby/Python/etc, XML, SQL, as opposed to one OS, one main development language, and perhaps a single database.
  2. Desktop developers can target a single OS and write code that is known to work on that platform (OK, so it's not necessarily that simple, but you get the idea). Web developers don't have that luxury: the user could be using any browser, any OS, have a slow connection, may have images/CSS/JS disabled, etc.
  3. A programmer who knows every HTML tag and CSS directive won't be able to create a decent web page until they have experience of browser quirks, layout techniques, and limitations. It's a bit of an art, and takes time.

But, ultimately, if you can program in one language, those skills can be transferred to another platform. Whether you like it is another matter.
__________________
Optimalworks Ltd web design and IT consultancy, Devon UK
http://www.optimalworks.net/

We produce elegant, standards-based, accessible websites:
Valid XHTML, CSS, JavaScript, DOM scripting, AJAX, PHP, .NET
ceeb is offline   Reply With Quote
Old Apr 27, 2007, 02:31   #18
I87
Non-Member
 
I87's Avatar
 
Join Date: Mar 2006
Location: UK
Posts: 381
Quote:
Originally Posted by ceeb View Post
I would say that Windows developers have a harder time moving to web development than the other way round.
can't agree more

some other reasons are the fact that the speed of your web applications matter. There's many people running the same application from one machine, if the code is moderate on your own desktop, I bet it'll be slow when you have a few users on one server using the same application
I think web programming (remember, this is my opinion) teaches you to optimize your code as much as possible, and with desktop programming I honestly don't care if it's slow- cause it's basically got a whole processor to itself (I know it doesn't, but it doesn't have to run multipul times like it would on the web)



I found it really easy to learn C# from PHP (took me a few hours to build a basic application the first time. That was a bot to delete myspace messages). The only thing I found hard was sockets, but after searching for hours on the web I finally found a nice class library for them to make them easy. lol


then, when I grasped C#, asp.net was fine

but the problem is, with C#, I don't think I'd be able to.. umm... "hand code" the applications like I can with php. I'll rely on the IDE for a long time I believe...


I've started on C++ recently, hand coding console applications. It's a lot harder than C# applications, but it's just like php!

so yeah. windows developers will have a hard time switching over to web applications. C++ developers wont have as much of a problem, due to PHP's syntax. But still, the optimization side wont be easy....


after coding in PHP for a few years, it took me a year and a half to realise mysql queries are what will bog down most applications, and it took me two years to understand that RAM = God
I87 is offline   Reply With Quote
Old Apr 27, 2007, 02:39   #19
SimplyFu
SitePoint Guru
 
Join Date: Apr 2007
Posts: 813
Quote:
after coding in PHP for a few years, it took me a year and a half to realise mysql queries are what will bog down most applications, and it took me two years to understand that RAM = God
nod nod, I can go through the same experience.
SimplyFu is offline   Reply With Quote
Old Apr 27, 2007, 03:23   #20
Moridin8
<GIR! Unleash the monkey!>
 
Moridin8's Avatar
 
Join Date: Nov 2002
Location: UK, soon USA
Posts: 315
Talking Sorry for the essay ;)

Quote:
Originally Posted by Manpasand View Post
Is there any difference between web development and software development?
As part of my profession it has fallen on me once or twice to quantify the differences between the two roles, if any. I have written a white paper and a couple of advisories on this subject and if I could post them here, I would - contractual obligation and client confidentiality unfortunately forbids it. So I will attempt to the best of my ability to explain a few conclusions that a few focus groups made up of business representitives, developers and I managed to come up with.

This needs to be split into at least two areas of consideration:
  • Past and present situations.
  • Corporate and personal expectation and reality.

(and various others… but the above encapsulate most of it)

In the days of yore, developing interactive non-static web applications tended to be the province of C++ developers via the CGI standard of the HTTP protocol. This required an in-depth knowledge of communications and the servers OS. Later this progressed to Perl implementations which started to allow abstraction of the hardware layers from the implementation allowing greater productivity. However Perl as a language suffers somewhat from a geeky image and never really got the popular vote.

It wasn’t until PHP, ASP and their ilk that web development started to come to the masses. ASP (with VBScript/JScript) and PHP are both exceptionally well abstracted from the hardware and only require a superficial knowledge of the underlying systems to be productive. Due to this, pretty much anyone who could string together an if statement and understood basic algebra could start creating dynamic websites.

More recently this is beginning to change again. Websites are beginning to look and work like applications (SaaS is a good example of the future) and the distinctions between Web and Desktop applications are beginning to blur. Developers are being required to have more than a superficial understanding of the hardware and systems they are using and this is actually beginning to become a problem that business is starting to notice.

The cohorts out there are beginning to mostly polarise into around four factions.
  • Designers who became web developers who stick to their preferred technology (e.g. PHP/ASP) no matter where it takes them

These individuals are usually those who are self employed or employed by smaller firms. Most of the larger corporations are beginning to ignore this group as many see PHP and ASP as inadequate.

  • Designers who became web developers going back to near pure design.

    This is by far the most common route for an ex-designer. These designers are quite sought after by the larger corporations as they at least understand development work, and can even work on client-side scripting.
  • Developers who became web developers who stick to their preferred technology no matter where it takes them

    This group is beginning more and more to be seen as specialists or more often as outmoded and unemployable. Most employments in this area now are becoming contracts or outsource roles (see point 1). Most developers who did this are widely (and possible erroneously?) considered to be individuals looking for an easy life in their day to day work.
  • Web developers or developers who became web developers going to near pure software development OR moving into SaaS, SOA and related technologies.

    This is by far the most common path for developers, although those coming from web development backgrounds are finding the path harder as they have to re-learn and work around mistaken perceptions generated from their PHP/ASP pasts. Those coming from a more non-web background but moved into the web arena are the best equipped and the most sought after.

In basic conclusion to the question

“…Is there a difference between a Web Developer
and a Software Developer?...”


In essence no, a software developer is a software developer, web or otherwise. However, if you consider ‘Web Development’ to be different from ‘Non-Web Development’ then historically yes, there is a difference, one that is beginning to blur.

A few years ago, Web Developers generally required less technical knowledge. Although the larger the system being developed, the more technical knowledge required, and coincidently this seemed to tie hand in hand with a scale that went like this:

The smaller a system, the more PHP, ASP and their ilk was used.
The larger a system, the less PHP, ASP and their ilk was used.

As applications got bigger, COM/COM+, Java and more recently .NET got used more, and this requires much more technical knowledge than that required to create a site using PHP, ASP and their ilk.

These days as ASP.NET and equivalents are taking their share of the web, higher skill levels are required if you want to go beyond the productivity basics supplied by their respective vendors.

As always there is the question of scale, with scale come’s complexity and that’s the basic truth of it.

Much of my work more recently has been to do with repair. It is an unfortunate trend that businesses and technical teams underestimate the cost and requirements of using the newer technologies and they can easily become out of their depth.

Teams who have happily worked for a decade with the script based technologies with a smattering of back-end components have been rudely shocked by the differences when attempting upgrades. Unfortunately there is also a growing number of developers who are amazing with the older web technologies that are beginning to flounder, and it’s a sorry thing to see – especially in the UK where training is a rare commodity.

As a personal view therefore I must say that yes, there is a difference and it costs business a lot money. Hopefully time will remove those differences.
__________________
Matt "Moridin8" Warren
======================================
Website: www.csharp-architect.com
....IRC: Usually freenode... '##csharp' (regular user)
Moridin8 is offline   Reply With Quote
Old Apr 27, 2007, 06:10   #21
Manpasand
SitePoint Addict
 
Manpasand's Avatar
 
Join Date: Feb 2005
Location: Internet
Posts: 394
Now I am much clear.
Thanks to all fellow members.
__________________
SEO Consultant | Travel Guide |
Manpasand is offline   Reply With Quote
Old Apr 27, 2007, 06:26   #22
joebert
Floridiot
 
joebert's Avatar
 
Join Date: Mar 2004
Location: Clearwater, FL
Posts: 749
Quote:
Originally Posted by Vali View Post
it's like comparing a horse and a tractor.
You can get them to do pretty much the same thing, but when something breaks you can't really fix them the same way.
Oh, you can fix them the same way.
It's going to be a little harder to bury the tractor afterwards though.
__________________
Picksel Color Picker
joebert is offline   Reply With Quote
Old Apr 27, 2007, 07:31   #23
secoif
SitePoint Zealot
 
secoif's Avatar
 
Join Date: Jul 2006
Location: Brisbane, Australia
Posts: 144
Noone has mentioned compatibility.

Along with the benefits of accessibility from around the world on a bunch of different systems, you get teh side effects of developing for a hoard of different platforms at once (think browser incompatibilities)...SURE, there are bugs in programming languages (looking at you: java deep copying) and there are issues if you are developing a program for multiple platforms (WIN/OSX/Linux/etc) but nowhere near the number of significant/painful differences in implementations of the same features as there are in the web world.
Sure liabries change between different versions of OSes, and I'm not saying a program is always going to work on every version of the same OS, but it's more likely and those differences are often very well documented.

<cry>Looking at my site render 3 different ways from the same source code makes me want to move back into application programming where you don't have to be thinking about whether the cow of a thing will work for every single line of code you write. It really is just disgusting and a pretty sorry state of affairs.</cry>

I guess if you stick to server side coding you avoid a lot of those problems, but then you miss out on all the potential sexiness that you tried to make but ended up having to redo 3 times over to get it working in IE...

So if you want to be to blame for the fact your program doesn't work, choose application programming (C++, Java, Python, Smalltalk, etc) if you want to blame someone else for the fact that someone is blaming you for your program not working...choose web programming. Someone still blames you but at least in your heart you know it conformed to standards and wasn't really your fault.
secoif is offline   Reply With Quote
Old Apr 27, 2007, 12:09   #24
chaplinio
SitePoint Enthusiast
 
Join Date: Mar 2007
Posts: 52
Id like to make the point that web development (if done well) is the HARDEST type of programming out there. I do both applications and web development as a bioengineering.

The web environment is a constantly changing world. Email protocols, DNS protocols, HTTP... and then the design factors are also constantly changing form CSS1, CSS2, CSS3?, flash, DHTML, Javascript, Browser compatibility, etc.

However, web development is also the EASIEST to learn. If you want to make a web page knowing nothing of the web you can make something pretty good looking in a matter of hours. Desktop applications have a higher learning curve, yet the standards do not change that much. Example: Java SWING has not changed much and its always backwards compatible.

Also, web development is also more prone to attack which requires a higher level of security. With a desktop application there is VERY slight changes that a user will go into the memory and change memory values on the fly. However, with web applications there is a very high change users will play with url parameters, cookies, forms, and everything they got.

Now, whether or not you are asking because you'd like to learn either web development or application development, id STRONGLY suggest you to learn Object Oriented Programming (OOP) first -- preferably in Java, and then start using PHP OOP for web development.

Last edited by r937; Apr 28, 2007 at 03:55..
chaplinio is offline   Reply With Quote
Old Apr 28, 2007, 01:43   #25
Moridin8
<GIR! Unleash the monkey!>
 
Moridin8's Avatar
 
Join Date: Nov 2002
Location: UK, soon USA
Posts: 315
Quote:
Originally Posted by chaplinio View Post
Id like to make the point that web development (if done well) is the HARDEST type of programming out there.
If you are purely refering to the perimiter of a web system (presentation layers/web-servers) I think I will disagree with you on this.

If you are talking about an entire system from perimiter through all the layers, tiers and complexities of running a large web farm, then I would agree with you.

Scale... it's all about scale.
__________________
Matt "Moridin8" Warren
======================================
Website: www.csharp-architect.com
....IRC: Usually freenode... '##csharp' (regular user)
Moridin8 is offline   Reply With Quote
Reply

Bookmarks

« Previous Thread | Next Thread »

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


All times are GMT -7. The time now is 06:06.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Copyright 1998-2009, SitePoint Pty Ltd. All Rights Reserved