Logic

  • Thread starter Thread starter John Bailo
  • Start date Start date
J

John Bailo

If I code my app in c#, I can port it to mono and use it in Linux.

If I code my app in java, I can use it in Linux or windows.

If I use Windows to code my app in c#, and use VS.NET, it costs money but is
efficient.

If I use Linux or Windows to code my app in java, and use Eclipse, it
doesn't cost money, but is less efficient.

If I code my app in mono, I can develop in Linux and port it to Windows.

If I use web services, I can write my client app in java or c# and use it in
Linux and Windows.

If I want my app to run on a PDA and code it in c# then I can run it on a
Windows CE device using CF and port it to mono and run it on a Linux PDA.

If I want my app to run on a PDA and code it in java, then I can run it on
PalmOS, WindowsCE, Symbian or Linux using the J2EE mobile.


How should I code my app?
 
Fallacy #1: Coding in Windows is not limited to VS.NET. You can always a
text editor, thus removing the cost for VS. Additionally, the new Express
products are available and are free until November.
 
Yep, you could even use L1n0x stuff such as GTk, or gcc, or bash (thanks to
MinGW & Cygwin), or Java of course.
In that case your productivity drop to multiplatform linux level, of course.
But that's to be expected.
However after that you could proudly say, look at my Multiplatform Message
box with 3 buttons!
I just have to run install Migw, install MinGW,
../configure --instal=/program\ files, make all install and it compiles and
run on all platform!
It tooks me only 256 lines of C code! and 56 line of makefile! (and 436
lines of configure.ac) to code that!
 
Christopher Reed said:
Fallacy #1: Coding in Windows is not limited to VS.NET. You can always a
text editor, thus removing the cost for VS.

If you're coding vanilla applications, that's true. If you're creating,
say, web services and clients, VS.NET's magic generation is a big part of
the development process. Trying to get all the coding conventions correct
relying only on the documentation would not be easy. Nor would doing
without a debugger, of course.
 
Mike Schilling said:
If you're coding vanilla applications, that's true. If you're creating,
say, web services and clients, VS.NET's magic generation is a big part of
the development process. Trying to get all the coding conventions correct
relying only on the documentation would not be easy. Nor would doing
without a debugger, of course.
 
First of all, I started programming back when there wasn't such a thing as
an IDE. Text editors was all there was and in many platforms, there still
are.

Secondly, if you've ever used Brief, you would know that you could "create"
without an IDE.

As for .NET, I've been programming .NET for the past four years without VS
because I felt more comfortable in the text editor. I have written web
services, remoting servers and clients, and web apps using just a text
editor. Granted, on occasion, I have used the IDE to get the gist of what I
needed to do, but with respect to VS .NET 2002/2003, my code is better
structured and much easier to read than what would be produced by these
IDEs.

As for using the MSDN SDK documentation, it has been great. There are some
instances where I needed more information, so I would search the web.
Otherwise, I would use the good old trial and error method.

As for debugging, there is the DbgClr debugger that comes with the SDK.
Maybe not as fancy as the VS debugger, but it's not bad for the price --
free.

As for "coding vanilla applications", I probably can program circles around
many a newbie because I'm not a point and click jockey but a real
programmer. Can an application be created faster in an IDE? Yes. Is it
more efficient? Not necessarily.

By the way, I have been using VWD Express since it came out and I think it's
great. Personally, the new VS 2005 IDEs are by far the best ones Microsoft
has produced in Windows. And as I had stated previously, but you did not
capture below, the Express products are free until November.
 
Lloyd said:
Yep, you could even use L1n0x stuff such as GTk, or gcc, or bash (thanks to
MinGW & Cygwin), or Java of course.
In that case your productivity drop to multiplatform linux level, of course.
But that's to be expected.
However after that you could proudly say, look at my Multiplatform Message
box with 3 buttons!
I just have to run install Migw, install MinGW,
./configure --instal=/program\ files, make all install and it compiles and
run on all platform!
It tooks me only 256 lines of C code! and 56 line of makefile! (and 436
lines of configure.ac) to code that!

Sounds like you don't like Linux. If the OP doesn't have to worry about
releasing his code to the public he can make a binary release and forego
the issues of making a Make file and a configure.ac and your argument
would therefore be thrown out the door.
 
Sounds like you don't like Linux. If the OP doesn't have to worry about
releasing his code to the public he can make a binary release and forego
the issues of making a Make file and a configure.ac and your argument
would therefore be thrown out the door.

Not at all.
I'm "criticizing" the development process. The result are just as good
whatever tools you use.
It's just not very productive to do FreeBSD developement (or worst,
multiplatform developement) at the time I was trying hard to do.

..NET came such as such a relief, reliable, single, simple and consisten API
to do everything.
Yep was there before but,somehow, not completely satisfactory...
 
Lloyd Dupont said:
Not at all.
I'm "criticizing" the development process. The result are just as good
whatever tools you use.

That's only true, of course, in an idealized environment in which
there's never a rush to release anything. In reality, productivity and
code quality are inextricably intertwined with each other.

Different developers are more productive with different tools... but
there are certain tools available in modern development environments
that I think are too valuable to dismiss... things like language-aware
refactoring tools. I find that without these tools available, code
quality does suffer because it changes the whole picture from a change
being tedious or even dangerous to being perfectly safe and taking less
than a second.
It's just not very productive to do FreeBSD developement (or worst,
multiplatform developement) at the time I was trying hard to do.

Multiplatform UNIX development in C can indeed be something of a bear,
if you're trying to do something that goes beyond the standard C API and
using POSIX/libc functions to do it. This is made worse by the culture
that dictates that it shouldn't matter which C compiler you use (hence
autoconf and friends... which are actually nice, but you have to know
enough to know when to use them). It requires a very high level of
experience and fluency in the API and the many potential portability
issues that arise. Few people have that kind of knowledge available to
them.

IME, most serious real-world application-level development, except for
open-source stuff anyway, is done using C++ rather than C, and
frameworks like ACE or the like that remove those problems. And Java,
of course, which also provides nice portable APIs to do GUI development
and basically anything else you've ever wanted to do, ever, plus about a
gazillion things you didn't.

--
www.designacourse.com
The Easiest Way To Train Anyone... Anywhere.

Chris Smith - Lead Software Developer/Technical Trainer
MindIQ Corporation
 
Mike Schilling said:
If you're coding vanilla applications, that's true. If you're creating,
say, web services and clients, VS.NET's magic generation is a big part of
the development process.

Well, wsdl.exe is part of the .NET SDK, of course. No need for Visual
Studio just to use those tools.

I don't know that I'd try to embark on a significant development project
without Visual Studio. (I really don't know.) But I very often write
and distribute small utilities and sample code to customers of MindIQ
that interact with our web services from C# or "C++" and .NET; I do it
from within Eclipse with a basic set of plugins I wrote in a weekend to
hook up with the .NET SDK, and it works fine. No nice syntax
highlighting or source code formatting or refactoring, of course.

--
www.designacourse.com
The Easiest Way To Train Anyone... Anywhere.

Chris Smith - Lead Software Developer/Technical Trainer
MindIQ Corporation
 
Back
Top