Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 6 Feb 2012 16:47:28 -0700
From:      Chad Perrin <perrin@apotheon.com>
To:        freebsd-questions@freebsd.org, FreeBSD Questions <questions@freebsd.org>
Subject:   Re: Software Development using Freebsd.
Message-ID:  <20120206234728.GA11150@hemlock.hydra>
In-Reply-To: <3411412722-917504491@intranet.com.mx>
References:  <3411412722-917504491@intranet.com.mx>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Feb 06, 2012 at 04:37:37PM -0600, Jorge Biquez wrote:
> 
> I am helping a non profit organization and giving some classes to
> prepare students so they can be prepared and try to get a job (they
> are students also and have the basics concepts already)

That's admirable.  I hope that works out.


> 
> Anyway, I am interested in teach them to develop some simple
> applications. From simple ones to destktop ones that access a
> database, desktop ones that use internet to connect to a remote
> database and web based ones with a database behind. We have 6 months
> and the idea is to work a lot remotely. Thin is that I do not want
> to use any kind of Microsoft products. Some of them do not have
> modern machines but until now, in previous classs, we could install
> Freebsd, text mode, and work from there.
> 
> Now we will try to have a graphical mode in Freebsd. With that we
> would like to be able to develop graphical applications for Windows
> (we all know that's the market and here some companies is what they
> are looking), so maybe sound crazy but I am looking to develop
> applications for Windows without using WIndows or Microsofot
> products at least.

What kind of experience do you want these students to have when they
leave?  Do you just want them practiced in doing some general programming
with cross-platform tools, including database access and simple GUI work?
Do you want them to specifically work with commodity tools that will fit
in with mainstream job posting requirements on a resume?  Do you want
them to work with tools that will enable them to most easily expand their
experience on their own once they get done with the course of instruction
so they can more rapidly approach general competence and create useful
projects of their own very quickly, figuring they can then move on to
other tools and technologies as they decide which direction they want to
take their professional pursuits?  Do you just want it to be as easy as
possible?

Your top priority should probably help you make this decision.


> 
> I have been looking for this for months. First case using Windows
> but not Microsoft products. I found some options BUT they all were
> expensive on the deployment. The "runtimes" were not free and the
> amount of money to pay was not a good option. Others provide " real
> free" excutables for runtimes but the products were expensive. I am
> now trying to, If possible, have FreeBSD running graphically and
> then use open source software to develop graphical windows
> applications.
> 
> Maybe I am wrong but until now I think my only option is to use
> Phyton. Is that correct? For what I have searched Python will let me
> create executables and will let me create Graphical solutions even
> for other platforms (Mac or LInux or whatever runs Python).
> 
> Talking with friend, he believes that my best bet is to teach them C
> or C++ and use some of the options for developing graphically ( I am
> not a C or C++ expert but I can learn alone).

Depending on your goals, anything from Ruby to C could be an excellent
choice.  LLVM/Clang is a great compiler suite for C; the mainstream Ruby
implementation will get you far; both can use platform-independent
graphical toolkits and database access libraries.  PostgreSQL is a great
DBMS distributed under a copyfree license, and it is well supported for
both these languages.  They're sorta on opposite ends of a spectrum,
though, so some kind of narrowing down of goals should be done before
arriving at any conclusions.


> 
> I was wondering if you could give some advie and comments on this.
> 
> Are you developing commercial applications (including Windows ones)
> using FreeBsd as your platform? Or Maybe any Linux Distribution?

I've written C, C++, Ruby, Perl, and PHP on FreeBSD, for deployment in a
wide range of platform circumstances.  Some of my development has been
commercial, some of it just for fun, some to solve my own personal
problems. . . .

There's nothing wrong with FreeBSD as a development platform for most
purposes, especially if you want to work on portable software
development.  In fact, I think that for purposes of writing portable
code, it's difficult to do worse than FreeBSD, because it's probably
easier to move code from FreeBSD to Linux distributions, Apple MacOS, and
MS Windows due to social factors involved than the other way around.


> 
> Would you do that with Python or something else?

I personally am not the world's biggest Python fan, but my choice would
depend on the specific goals involved.  If you're leaning toward the
Python end of the spectrum, though, I (personally; your mileage may
differ) would probably choose Ruby instead.

-- 
Chad Perrin [ original content licensed OWL: http://owl.apotheon.org ]



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120206234728.GA11150>