Discussion:
Looking for a viable alternative to MS access.
Tzahi Fadida
2005-01-23 19:50:43 UTC
Permalink
There are several free open-source projects on the web,
however from the looks of it none are comparable to
ms access.
So the next best thing is to use some webservice combined
with some database language. I was thinking about
PHP+RUBY RAILS for the db forms + POSTGRESQL.
Any other suggestions?

Background: I am instructing students for a pro bono
gov (details are obscured on purpose, NDA ...)
project and the project is largely information
centric. I.e. you enter data and display data,
cross-referencing , etc...
Its very important that the users of the system will
find it easy to use, I.e. as much as possible to lower
their level of involvement with the technical stuff.
The students involved in the project have limited
capabilities with programming so I think something
like ruby rails is the maximum they can do.
They have only one semester to implement (they already
used one semester to design and analyze) so
they must concentrate on productive issues
like forms/reports/etc... instead of dealing with
the technical stuff.
Most of the technicalities could be done by another
branching project after they are done.

Important requirements for the pro bono project:
the tools Must be Free and not only Open Source.
Hebrew interface, hebrew db support.
MUST run also on a winbox.


Regards,
tzahi.

* - * - *
Itzhak Fadida
MSc Student
Information System Engineering Area
Faculty of Industrial Engineering & Management
Technion - Israel Institute of Technology
Technion City, Haifa, Israel 32000
Technion Email: Tzahi-n3HZFTNAcDL7r6psnUbsSmZHpeb/A1Y/@public.gmane.org
Alternative Email: TzahiFadida-***@public.gmane.org
Office Phone(from Israel): 04-8292226
Office Location: Technion, Cooper Bldg. room 427.
* - * - * - * - * - * - * - * - * - * - * - * - * - * - *

WARNING TO SPAMMERS: see at
http://members.lycos.co.uk/my2nis/spamwarning.html



=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Tzahi Fadida
2005-01-23 19:52:07 UTC
Permalink
There are several free open-source projects on the web,
however from the looks of it none are comparable to
ms access.
So the next best thing is to use some webservice combined
with some database language. I was thinking about
PHP+RUBY RAILS for the db forms + POSTGRESQL.
Any other suggestions?

Background: I am instructing students for a pro bono
gov (details are obscured on purpose, NDA ...)
project and the project is largely information
centric. I.e. you enter data and display data,
cross-referencing , etc...
Its very important that the users of the system will
find it easy to use, I.e. as much as possible to lower
their level of involvement with the technical stuff.
The students involved in the project have limited
capabilities with programming so I think something
like ruby rails is the maximum they can do.
They have only one semester to implement (they already
used one semester to design and analyze) so
they must concentrate on productive issues
like forms/reports/etc... instead of dealing with
the technical stuff.
Most of the technicalities could be done by another
branching project after they are done.

Important requirements for the pro bono project:
the tools Must be Free and not only Open Source.
Hebrew interface, hebrew db support.
MUST run also on a winbox.


Regards,
tzahi.

WARNING TO SPAMMERS: see at
http://members.lycos.co.uk/my2nis/spamwarning.html



=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Oded Arbel
2005-01-23 21:11:34 UTC
Permalink
Post by Tzahi Fadida
There are several free open-source projects on the web,
however from the looks of it none are comparable to
ms access.
<snip>
the tools Must be Free and not only Open Source.
Hebrew interface, hebrew db support.
MUST run also on a winbox.
Why the requirement to be free (as in beer) ? last time I checked,
MS-Access was not free (in either meaning) and to compete with that an
open source product only has to give you more value for money, not more
value for no money...

If the alternatives are MS-Access or a competing open source product
then I do suggest Rekall from The Kompany which is licensed under the
GPL but the vendor will only supply binary packages for MS-Windows for a
license fee (one can still download the source and build it. Linux
binaries as available for free from several sources, some distros even
bundle them).
Rekall offers MS-Access like form design and supports scripting in
python (which is not as good as Ruby but will do ;-).

I think you need to prioritize - which requirement is more important:
'available for no charge' or 'MS-Access feature completeness'. I don't
think they coincide currently (at least until Kexi is stable, which
would take some time), and as a result, if the former is more important
then I suggest you drop the other requirement and teach your students to
program using some kind of easy scripting language. Ruby is a good idea,
but also PHP.
--
Oded

::..
Excuses are the easiest things to manufacture, and the hardest things to sell.


=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Tzahi Fadida
2005-01-23 23:01:40 UTC
Permalink
...On Behalf Of Oded Arbel
There are several free open-source projects on the web, however from
the looks of it none are comparable to ms access.
<snip>
the tools Must be Free and not only Open Source.
Hebrew interface, hebrew db support.
MUST run also on a winbox.
Why the requirement to be free (as in beer) ? last time I checked,
MS-Access was not free (in either meaning) and to compete
with that an
open source product only has to give you more value for
money, not more
value for no money...
You misunderstood me, I don't intend to use ms-access because its
not free and because one of the new requirement we gave the students
of the ie faculty at the technion is that they can't use ms-access for
yearly projects.(or asp starting a semester or two. :)
The main problem is that the particular gov office is under funded and
it requested from us to do at least part of the job.
If it had money, they would have taken an outside contractor.
There is a legacy ms-access local mdb there that will have to be
ported (probably using mdb-tools, but its not really important).
We also want to centrelize all the data feeds into one system
so it will require us to be able to reach they system from
all workstations, meaning more access licenses so we striked that
out right away.
If the alternatives are MS-Access or a competing open source product
then I do suggest Rekall from The Kompany which is licensed under the
GPL but the vendor will only supply binary packages for
MS-Windows for a
license fee (one can still download the source and build it. Linux
binaries as available for free from several sources, some
distros even
bundle them).
Rekall offers MS-Access like form design and supports scripting in
python (which is not as good as Ruby but will do ;-).
again, no money.
I know rekall but they also have legacy word, dos, windows and
there is little chance of convincing them to move to linux on most
workstations.
'available for no charge' or 'MS-Access feature
completeness'. I don't
no charge since otherwise there is no project.
think they coincide currently (at least until Kexi is stable, which
would take some time), and as a result, if the former is more
important
then I suggest you drop the other requirement and teach your
students to
program using some kind of easy scripting language. Ruby is a
good idea,
but also PHP.
I meant that I plan to use both. since we will also need some
middle tier logic and maybe some fancy gui additions.
Are there alternatives to ruby rails? btw, I don't consider
php an alternative at the same level, maybe to ruby but
not to ruby rails which is all about
"less software and convention over configuration"
i.e. they don't have to know the programming underlayers
just create xml like files and fancy htmls.
http://www.onlamp.com/pub/a/onlamp/2005/01/20/rails.html?page=1

Does anyone have experience with rails and can share?
--
Oded
::..
Excuses are the easiest things to manufacture, and the
hardest things to sell.
=================================================================
with the word "unsubscribe" in the message body, e.g., run
=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Danny Lieberman
2005-01-24 07:55:13 UTC
Permalink
Tazahi

I've been following this thread and I wanted to shed a different light:

I'm not a Microsoft advocate but lets get the facts straight:

a. MS Access developer is free in Office
b. The Academic licenses for Office are about 30% of the commercial MOLP
which is about 20% of the single unit list price - so it costs peanuts
for the Technion to develop in MS Access
c. MS Access runtime (Jet) is free for unlimited distribution
d. You can use PHP on a Windows server to access the MDB database by
ODBC since there is no limitation to using an MDB in a runtime server

Second of all, with all due respect - this sort of smacks of "i'll bite
off my nose to spite my face" (We dont use Access because ... )

MS Access is a widely used tool,and when your students go out looking
for work they'll have a much better shot at a job with Access than with
Ruby.
Think of it like this - it's a tool and engineering schools like the
Technion are supposed to teach you to find & use tools. If the best
tool for this job is a pocket knife thats the tool
I would expect a Technion grad to use.

;-)

danny
Post by Tzahi Fadida
...On Behalf Of Oded Arbel
There are several free open-source projects on the web, however from
the looks of it none are comparable to ms access.
<snip>
the tools Must be Free and not only Open Source.
Hebrew interface, hebrew db support.
MUST run also on a winbox.
Why the requirement to be free (as in beer) ? last time I checked,
MS-Access was not free (in either meaning) and to compete
with that an
open source product only has to give you more value for
money, not more
value for no money...
You misunderstood me, I don't intend to use ms-access because its
not free and because one of the new requirement we gave the students
of the ie faculty at the technion is that they can't use ms-access for
yearly projects.(or asp starting a semester or two. :)
The main problem is that the particular gov office is under funded and
it requested from us to do at least part of the job.
If it had money, they would have taken an outside contractor.
There is a legacy ms-access local mdb there that will have to be
ported (probably using mdb-tools, but its not really important).
We also want to centrelize all the data feeds into one system
so it will require us to be able to reach they system from
all workstations, meaning more access licenses so we striked that
out right away.
If the alternatives are MS-Access or a competing open source product
then I do suggest Rekall from The Kompany which is licensed under the
GPL but the vendor will only supply binary packages for
MS-Windows for a
license fee (one can still download the source and build it. Linux
binaries as available for free from several sources, some
distros even
bundle them).
Rekall offers MS-Access like form design and supports scripting in
python (which is not as good as Ruby but will do ;-).
again, no money.
I know rekall but they also have legacy word, dos, windows and
there is little chance of convincing them to move to linux on most
workstations.
'available for no charge' or 'MS-Access feature
completeness'. I don't
no charge since otherwise there is no project.
think they coincide currently (at least until Kexi is stable, which
would take some time), and as a result, if the former is more
important
then I suggest you drop the other requirement and teach your
students to
program using some kind of easy scripting language. Ruby is a
good idea,
but also PHP.
I meant that I plan to use both. since we will also need some
middle tier logic and maybe some fancy gui additions.
Are there alternatives to ruby rails? btw, I don't consider
php an alternative at the same level, maybe to ruby but
not to ruby rails which is all about
"less software and convention over configuration"
i.e. they don't have to know the programming underlayers
just create xml like files and fancy htmls.
http://www.onlamp.com/pub/a/onlamp/2005/01/20/rails.html?page=1
Does anyone have experience with rails and can share?
--
Oded
::..
Excuses are the easiest things to manufacture, and the
hardest things to sell.
=================================================================
with the word "unsubscribe" in the message body, e.g., run
=================================================================
the word "unsubscribe" in the message body, e.g., run the command
--
Danny Lieberman
Visit us at http://www.software.co.il
Office + 972 8 970-1485
Cell + 972 54 447-1114



=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
didi-Uo0HRlKCksNmR6Xm/ (Yedidyah Bar-David)
2005-01-24 08:44:41 UTC
Permalink
Post by Danny Lieberman
Tazahi
a. MS Access developer is free in Office
Not exactly. It is built into Office Pro, but not in all Office bundles.
Post by Danny Lieberman
b. The Academic licenses for Office are about 30% of the commercial MOLP
which is about 20% of the single unit list price - so it costs peanuts
for the Technion to develop in MS Access
I agree it should not cost much. But they might have other
considerations/needs.
Post by Danny Lieberman
c. MS Access runtime (Jet) is free for unlimited distribution
Jet, as far as I understand, isn't the "runtime" of MS Access. Actually,
there is not such a separation between Runtime and Development time, in
Access. You can't ship an executable+runtime. Jet, as far as I
understand, is the runtime of Access's Database, that is, it's the code
you need to read/write mdb files. So if the app is Access-based, you
need Access. If it's e.g. written in VB, and only needs to rw mdb files,
you can distribute it without limitations (plus Jet and VB runtime).
Post by Danny Lieberman
d. You can use PHP on a Windows server to access the MDB database by
ODBC since there is no limitation to using an MDB in a runtime server
Indeed, but that does not help you if the app is Access. If you only
need a DB, mdb might (or might not) be an acceptable choice. But he
talked about Access is a development platform.
If mdb is all you need, there are a few other small DBs. I played a bit
with SQLite and liked it. I am not sure it does everything Jet does, but
it's probably good enough for most such small projects.
Post by Danny Lieberman
Second of all, with all due respect - this sort of smacks of "i'll bite
off my nose to spite my face" (We dont use Access because ... )
MS Access is a widely used tool,and when your students go out looking
for work they'll have a much better shot at a job with Access than with
Ruby.
Think of it like this - it's a tool and engineering schools like the
Technion are supposed to teach you to find & use tools. If the best
tool for this job is a pocket knife thats the tool
I would expect a Technion grad to use.
Although I am from a CS school, which isn't exactly engineering, we do
have here some discussions about what is our mission and what we should
teach. Clearly we can't (and don't want to) teach only theoretic stuff.
But I am also not sure we should choose our languages/platforms _only_
based on popularity and on increasing the number of relevant lines in
our students' resume. If someone wants to program Access they do not
need to spend 3 whole years here (or 4 in the Technion).

Maybe Ruby isn't known enough. I am pretty sure, though, that PHP will
serve them very well when looking for jobs. It's also probably more work
than Access, so I understand Tzahi's request.

To comment on Tzahi's original questions - I have no real experience
with any of this, but I did see in the past some relevant projects based
on PHP. Search freshmeat. Examples: bforms, bif, browse_edit, dblib,
eleven, phpbuns, phpcodegenie, php_gen, phplabware, phplus, prado,
webgen, yawp. They are from my .whatsnewfm.db.hot, in alphabetical order
:-) I never used any of them.
--
Didi


=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Danny Lieberman
2005-01-24 08:57:32 UTC
Permalink
Didi

1. FYI - Jet is totally separate from the Access developer - you can
ship and distribute a Jet runtime (which is a bunch of DLL's basically)
free of charge for any Windows o/s

2. imho - Access Basic can be part of a 1 trimester course on
programming languages which should cover a number of modern languages -
like php, java, javascript, Lisp (not scheme)
I believe that being exposed to a spectrum of modern widely used
programming languages is an important part of a CS education although
not an end in itself.

3. Having said that, I have worked in industry for a long time and I
can tell you that perhaps with the exception of Bar Ilan; most of the CS
grads I interviewed had pathetically
poor programming skills. There is a very sad tendency at the Technion
and TAU to focus on CS-theoretic curricula and not on problem-solving.

danny
Post by didi-Uo0HRlKCksNmR6Xm/ (Yedidyah Bar-David)
Post by Danny Lieberman
Tazahi
a. MS Access developer is free in Office
Not exactly. It is built into Office Pro, but not in all Office bundles.
Post by Danny Lieberman
b. The Academic licenses for Office are about 30% of the commercial MOLP
which is about 20% of the single unit list price - so it costs peanuts
for the Technion to develop in MS Access
I agree it should not cost much. But they might have other
considerations/needs.
Post by Danny Lieberman
c. MS Access runtime (Jet) is free for unlimited distribution
Jet, as far as I understand, isn't the "runtime" of MS Access. Actually,
there is not such a separation between Runtime and Development time, in
Access. You can't ship an executable+runtime. Jet, as far as I
understand, is the runtime of Access's Database, that is, it's the code
you need to read/write mdb files. So if the app is Access-based, you
need Access. If it's e.g. written in VB, and only needs to rw mdb files,
you can distribute it without limitations (plus Jet and VB runtime).
Post by Danny Lieberman
d. You can use PHP on a Windows server to access the MDB database by
ODBC since there is no limitation to using an MDB in a runtime server
Indeed, but that does not help you if the app is Access. If you only
need a DB, mdb might (or might not) be an acceptable choice. But he
talked about Access is a development platform.
If mdb is all you need, there are a few other small DBs. I played a bit
with SQLite and liked it. I am not sure it does everything Jet does, but
it's probably good enough for most such small projects.
Post by Danny Lieberman
Second of all, with all due respect - this sort of smacks of "i'll bite
off my nose to spite my face" (We dont use Access because ... )
MS Access is a widely used tool,and when your students go out looking
for work they'll have a much better shot at a job with Access than with
Ruby.
Think of it like this - it's a tool and engineering schools like the
Technion are supposed to teach you to find & use tools. If the best
tool for this job is a pocket knife thats the tool
I would expect a Technion grad to use.
Although I am from a CS school, which isn't exactly engineering, we do
have here some discussions about what is our mission and what we should
teach. Clearly we can't (and don't want to) teach only theoretic stuff.
But I am also not sure we should choose our languages/platforms _only_
based on popularity and on increasing the number of relevant lines in
our students' resume. If someone wants to program Access they do not
need to spend 3 whole years here (or 4 in the Technion).
Maybe Ruby isn't known enough. I am pretty sure, though, that PHP will
serve them very well when looking for jobs. It's also probably more work
than Access, so I understand Tzahi's request.
To comment on Tzahi's original questions - I have no real experience
with any of this, but I did see in the past some relevant projects based
on PHP. Search freshmeat. Examples: bforms, bif, browse_edit, dblib,
eleven, phpbuns, phpcodegenie, php_gen, phplabware, phplus, prado,
webgen, yawp. They are from my .whatsnewfm.db.hot, in alphabetical order
:-) I never used any of them.
--
Danny Lieberman
Visit us at http://www.software.co.il
Office + 972 8 970-1485
Cell + 972 54 447-1114



=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Muli Ben-Yehuda
2005-01-24 09:24:04 UTC
Permalink
Post by Danny Lieberman
2. imho - Access Basic can be part of a 1 trimester course on
programming languages which should cover a number of modern languages -
like php, java, javascript, Lisp (not scheme)
Ok, I'll bite - why lisp and not scheme?
Post by Danny Lieberman
I believe that being exposed to a spectrum of modern widely used
programming languages is an important part of a CS education although
not an end in itself.
widely used != interesting or relevant. Would you say that VB is a
useful thing for a student to go to a university to learn?

I wholeheartedly agree that exposure to a wide variety of programming
languages is crucial, anything from shell to assembly to C to C++ to
Java to lisp to prolog. I disagree that learning a particulary tool -
especially if it's a proprietary tool! - is something that should be
done in university or high school. How is learning to use access
contributing to the student's education? what can you learn from
access that couldn't be learned from far better sources, except how to
use access?

Cheers,
Muli
--
Muli Ben-Yehuda
http://www.mulix.org | http://mulix.livejournal.com/
Danny Lieberman
2005-01-24 10:59:15 UTC
Permalink
muli

Lisp is the language of Autocad - Scheme is the language of the TAU CS
dept. Acad has a bigger install base. ;-)

ok - university is about learning to learn but "interesting and
relevant" is usually a personal thing for a student.

Unfortunately - employers want people who know how to work in familiar
environments -
My interviewing experience is that most TAU new CS grads cant program to
save their life which is why I always look for someone who worked in a
real programming shop for a year or 2

There is something very wrong with the system when a CS grad needs 1-2
years of industry experience to be able to program whereas
a first year student at the Rubin Academy of music can sit in any ANY
ensemble, sight read and make music.

Professional muscians practice 3-6 hours/day - how many hours a day does
a professional programmer practice?

When I hire a programmer - I expect him or her to be able to be
productive immediately just the way a contrabass player can read music
and play in a group;
just like its ok for a clarinet player to spend some time learning bass
clarinet I have no problem with hiring a programmer for a Cobol slot if
she can learn Cobol over the weekend

danny
Post by Muli Ben-Yehuda
Post by Danny Lieberman
2. imho - Access Basic can be part of a 1 trimester course on
programming languages which should cover a number of modern languages -
like php, java, javascript, Lisp (not scheme)
Ok, I'll bite - why lisp and not scheme?
Post by Danny Lieberman
I believe that being exposed to a spectrum of modern widely used
programming languages is an important part of a CS education although
not an end in itself.
widely used != interesting or relevant. Would you say that VB is a
useful thing for a student to go to a university to learn?
I wholeheartedly agree that exposure to a wide variety of programming
languages is crucial, anything from shell to assembly to C to C++ to
Java to lisp to prolog. I disagree that learning a particulary tool -
especially if it's a proprietary tool! - is something that should be
done in university or high school. How is learning to use access
contributing to the student's education? what can you learn from
access that couldn't be learned from far better sources, except how to
use access?
Cheers,
Muli
--
Danny Lieberman
Visit us at http://www.software.co.il
Office + 972 8 970-1485
Cell + 972 54 447-1114



=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
didi-Uo0HRlKCksNmR6Xm/ (Yedidyah Bar-David)
2005-01-24 11:33:20 UTC
Permalink
Post by Danny Lieberman
muli
Lisp is the language of Autocad - Scheme is the language of the TAU CS
dept. Acad has a bigger install base. ;-)
LISP is a family of languages, not one language. If one is to learn
LISP today they will probably learn CommonLisp, which AFAIK isn't
the variant Autocad uses. So if you hier a fresh LISP programmer he
won't have a big advantage for programming Autocad over a seasoned
scheme programmer. I do not imply that our graduates are seasoned
scheme programmers. BTW, we started (or at least intend to in the
near future) teaching Java as a first language. I am not personally
confident this is the best choice, but noone asked me - I am a sys
admin, not a proffessor.
BTW - one of the main reasons, or so I have heard, for teaching
scheme, isn't that it's such a great language (it might be - I don't
know it. I do know LISP and think it's great), but the great book
they use to teach it ("Structure and Interpretation of Computer
Programs"). I do not underestimate such a reason, assuming the book
is indeed good.
Post by Danny Lieberman
ok - university is about learning to learn but "interesting and
relevant" is usually a personal thing for a student.
Unfortunately - employers want people who know how to work in familiar
environments -
My interviewing experience is that most TAU new CS grads cant program to
save their life which is why I always look for someone who worked in a
real programming shop for a year or 2
Very well. What's wrong with that?
I am pretty sure a MAMRAM graduate will program much better than any
University graduate. It's simply a matter of your goals and what you
do to get them, when you build your education program.
Post by Danny Lieberman
There is something very wrong with the system when a CS grad needs 1-2
years of industry experience to be able to program whereas
a first year student at the Rubin Academy of music can sit in any ANY
ensemble, sight read and make music.
To use your example - how well does a Musicology grad play a piano?
I do not claim that a CS grad should program the way a Musicology grad
plays a piano. But he is also not expected to be, by definition, the
best programmer one can create in 3 years. He should be able to get
a job as a programmer, but also, among other things, to continue his
studies and be a researcher.
Post by Danny Lieberman
Professional muscians practice 3-6 hours/day - how many hours a day does
a professional programmer practice?
I estimate that a good student, that did all his homework/projects by
himself, and finished with good grades, wrote 10K-20K lines. Maybe other
places make you write more, or better. I can also suspect some of the
grads you interviewed did not do all their homework by themselves, or
did not do them well (and did not get good grades).
--
Didi


=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Micha Feigin
2005-01-25 02:05:11 UTC
Permalink
At Mon, 24 Jan 2005 13:33:20 +0200,
Post by didi-Uo0HRlKCksNmR6Xm/ (Yedidyah Bar-David)
Post by Danny Lieberman
muli
Lisp is the language of Autocad - Scheme is the language of the TAU CS
dept. Acad has a bigger install base. ;-)
LISP is a family of languages, not one language. If one is to learn
LISP today they will probably learn CommonLisp, which AFAIK isn't
the variant Autocad uses. So if you hier a fresh LISP programmer he
Talking of lisp, don't forget emacsen-lisp (and a few other more obscure
programs that use lisp as a scripting language).
Post by didi-Uo0HRlKCksNmR6Xm/ (Yedidyah Bar-David)
won't have a big advantage for programming Autocad over a seasoned
scheme programmer. I do not imply that our graduates are seasoned
scheme programmers. BTW, we started (or at least intend to in the
near future) teaching Java as a first language. I am not personally
confident this is the best choice, but noone asked me - I am a sys
admin, not a proffessor.
BTW - one of the main reasons, or so I have heard, for teaching
scheme, isn't that it's such a great language (it might be - I don't
know it. I do know LISP and think it's great), but the great book
they use to teach it ("Structure and Interpretation of Computer
Programs"). I do not underestimate such a reason, assuming the book
is indeed good.
One of the main reasons for teaching scheme is that it was adopted from the MIT
introduction course (I think one of the profesors brought it with him from a
sabatical or something like that).

The reason they teach it there is that scheme is designed to handle computation theoretical
concepts. Actually it was writen to handle a logical approach to symbolic math
(lambda notation) but basic theoretical CS ideas fit nicely in that slot.

If you read the course book you will see that its supposed to be a very
interesting course with scheme used as a tool and not a goal. The course kind of
missed on that.

I think that course should be tought after the students have had some basic
programing experience so that things fit into place better, although I am not
sure if java is the right choice and c is definitely problematic. You need to
understand OO programing to handle java properly and it has some problems with
its approach to OO for teaching purposes and c is too flexible for this
purpose. Tought as a first language it teaches people very bad programing habits
(mainly problems with good encasulation and segregation)

I can't think of a widespread language which is fit as a first language
actually. They allow too much flexibility for learning to concepts in the right
way, although java is better for this then c++. There are languages that are
designed in a better way to learn the theory. Scheme is a good teaching tool IF
USED PROPERLY, and IIRC eiffel (not sure if I'm not mixing it with another one)
is better for OO then java (although there is less chance of actually using it
later).

First learn to program corectly and then learn the used languages. You will have
better knowledge and it will leave less bad habits such as using non-static
functions in c and global variables in c and c++.

list was originaly writen to do symbolic
Post by didi-Uo0HRlKCksNmR6Xm/ (Yedidyah Bar-David)
Post by Danny Lieberman
ok - university is about learning to learn but "interesting and
relevant" is usually a personal thing for a student.
Unfortunately - employers want people who know how to work in familiar
environments -
My interviewing experience is that most TAU new CS grads cant program to
save their life which is why I always look for someone who worked in a
real programming shop for a year or 2
Very well. What's wrong with that?
I am pretty sure a MAMRAM graduate will program much better than any
University graduate. It's simply a matter of your goals and what you
do to get them, when you build your education program.
Post by Danny Lieberman
There is something very wrong with the system when a CS grad needs 1-2
years of industry experience to be able to program whereas
a first year student at the Rubin Academy of music can sit in any ANY
ensemble, sight read and make music.
To use your example - how well does a Musicology grad play a piano?
I do not claim that a CS grad should program the way a Musicology grad
plays a piano. But he is also not expected to be, by definition, the
best programmer one can create in 3 years. He should be able to get
a job as a programmer, but also, among other things, to continue his
studies and be a researcher.
Post by Danny Lieberman
Professional muscians practice 3-6 hours/day - how many hours a day does
a professional programmer practice?
I estimate that a good student, that did all his homework/projects by
himself, and finished with good grades, wrote 10K-20K lines. Maybe other
The problem is too much emphasis on working code and not enough on how its
designed, both in teaching and when checking results. Writing 5K lines of
properly designed code will make you a better programer the writing 50K lines of
code that works but you can't maintain it yourself a month after you are
finished or change the specs/add a feature without rewriting 90%.
Post by didi-Uo0HRlKCksNmR6Xm/ (Yedidyah Bar-David)
places make you write more, or better. I can also suspect some of the
grads you interviewed did not do all their homework by themselves, or
did not do them well (and did not get good grades).
--
Didi
=================================================================
the word "unsubscribe" in the message body, e.g., run the command
+++++++++++++++++++++++++++++++++++++++++++
This Mail Was Scanned By Mail-seCure System
at the Tel-Aviv University CC.
=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Shlomi Fish
2005-01-25 04:40:12 UTC
Permalink
We are getting dangerously off-topic here. (not that I mind).
Post by Micha Feigin
At Mon, 24 Jan 2005 13:33:20 +0200,
Post by didi-Uo0HRlKCksNmR6Xm/ (Yedidyah Bar-David)
Post by Danny Lieberman
muli
Lisp is the language of Autocad - Scheme is the language of the TAU CS
dept. Acad has a bigger install base. ;-)
LISP is a family of languages, not one language. If one is to learn
LISP today they will probably learn CommonLisp, which AFAIK isn't
the variant Autocad uses. So if you hier a fresh LISP programmer he
Talking of lisp, don't forget emacsen-lisp (and a few other more obscure
programs that use lisp as a scripting language).
In my post I gave a coverage of several implementation-specific LISPs. But
Scheme is still a dialect of LISP.
Post by Micha Feigin
Post by didi-Uo0HRlKCksNmR6Xm/ (Yedidyah Bar-David)
won't have a big advantage for programming Autocad over a seasoned
scheme programmer. I do not imply that our graduates are seasoned
scheme programmers. BTW, we started (or at least intend to in the
near future) teaching Java as a first language. I am not personally
confident this is the best choice, but noone asked me - I am a sys
admin, not a proffessor.
BTW - one of the main reasons, or so I have heard, for teaching
scheme, isn't that it's such a great language (it might be - I don't
know it. I do know LISP and think it's great), but the great book
they use to teach it ("Structure and Interpretation of Computer
Programs"). I do not underestimate such a reason, assuming the book
is indeed good.
One of the main reasons for teaching scheme is that it was adopted from the
MIT introduction course (I think one of the profesors brought it with him
from a sabatical or something like that).
Well, the MIT introducory course and the book "Strucutre and Interpretation of
Computer Programs" are highly related. The book was written by the two
original lecturers who formulated the course at MIT.
Post by Micha Feigin
The reason they teach it there is that scheme is designed to handle
computation theoretical concepts. Actually it was writen to handle a
logical approach to symbolic math (lambda notation) but basic theoretical
CS ideas fit nicely in that slot.
Scheme is very suitable for the book and course for several reasons. One that
it is very simple and yet powerful enough to accomodate for the needs of the
student. The other is that it contains the necessary primitives for
recursion, closures, numeric operations, etc. Finally, it is very trivial to
implement an interpreter or compiler for Scheme as is demonstrated in the
book.
Post by Micha Feigin
If you read the course book you will see that its supposed to be a very
interesting course with scheme used as a tool and not a goal. The course
kind of missed on that.
I took the two corresponding courses at the Technion (EE Faculty) under the
supervision of Prof. Jakob Katzenelson (who, BTW is credited in the second
edition of the book), and I never felt this way. In the Technion, the course
is not intended as an introducory course to programming, but rather as a
course for learning how to program and think about programming creatively. I
have read the book beforehand by reading it in one of the Technion libraries,
and yet I found that performing the exercises was highly enlightening.
(albeit for me - not too difficult).
Post by Micha Feigin
I think that course should be tought after the students have had some basic
programing experience so that things fit into place better,
Right. SICP is too abstract for absolute beginners. Beginners need a more
concrete and down-to-earth corriculum with more practical tasks.
Post by Micha Feigin
although I am
not sure if java is the right choice and c is definitely problematic. You
need to understand OO programing to handle java properly and it has some
problems with its approach to OO for teaching purposes and c is too
flexible for this purpose.
The problem with C is that it's too low-level and limiting for beginners.
Beginners shouldn't need to write a Hello World program with an obscure
#include <stdio.h> header, and an int main() function that returns 0. They
shouldn't have to use printf("My integer is %i\n") instead of print "My
integer is", i, "\n"; or something similar. And they don't need to be aware
of pointers with all their nuances and caveats. C also requires quite a lot
of code to do some extremely basic operations, which beginners would find
annoying.

C is now being taught as the introducory language in the Technion (and for
many students the language they'll use most of the time in their courses). I
can tell that many people without a prior experience in programming, find it
difficult to grasp and too hard. I really wish a different language was used.

My sister is now a CS undergraduate student in the Technion. She learned
mostly ANSI C in the two introducery courses, but now she has the Data
Structures course, for which the computer exercises were given in C++. (with
classes, templates, functors, and other beasts). I don't see why they
couldn't have simply given the assignments in ANSI C if that's what they
taught the most.
Post by Micha Feigin
Tought as a first language it teaches people
very bad programing habits (mainly problems with good encasulation and
segregation)
Are you referring to Java or to C?

Regards,

Shlomi Fish

---------------------------------------------------------------------
Shlomi Fish shlomif-ik1l9ssToec+JF/***@public.gmane.org
Homepage: http://www.shlomifish.org/

Knuth is not God! It took him two days to build the Roman Empire.

=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Micha Feigin
2005-01-25 14:28:12 UTC
Permalink
At Tue, 25 Jan 2005 06:40:12 +0200,
Post by Shlomi Fish
We are getting dangerously off-topic here. (not that I mind).
Post by Micha Feigin
At Mon, 24 Jan 2005 13:33:20 +0200,
Post by didi-Uo0HRlKCksNmR6Xm/ (Yedidyah Bar-David)
Post by Danny Lieberman
muli
Lisp is the language of Autocad - Scheme is the language of the TAU CS
dept. Acad has a bigger install base. ;-)
LISP is a family of languages, not one language. If one is to learn
LISP today they will probably learn CommonLisp, which AFAIK isn't
the variant Autocad uses. So if you hier a fresh LISP programmer he
Talking of lisp, don't forget emacsen-lisp (and a few other more obscure
programs that use lisp as a scripting language).
In my post I gave a coverage of several implementation-specific LISPs. But
Scheme is still a dialect of LISP.
Post by Micha Feigin
Post by didi-Uo0HRlKCksNmR6Xm/ (Yedidyah Bar-David)
won't have a big advantage for programming Autocad over a seasoned
scheme programmer. I do not imply that our graduates are seasoned
scheme programmers. BTW, we started (or at least intend to in the
near future) teaching Java as a first language. I am not personally
confident this is the best choice, but noone asked me - I am a sys
admin, not a proffessor.
BTW - one of the main reasons, or so I have heard, for teaching
scheme, isn't that it's such a great language (it might be - I don't
know it. I do know LISP and think it's great), but the great book
they use to teach it ("Structure and Interpretation of Computer
Programs"). I do not underestimate such a reason, assuming the book
is indeed good.
One of the main reasons for teaching scheme is that it was adopted from the
MIT introduction course (I think one of the profesors brought it with him
from a sabatical or something like that).
Well, the MIT introducory course and the book "Strucutre and Interpretation of
Computer Programs" are highly related. The book was written by the two
original lecturers who formulated the course at MIT.
Post by Micha Feigin
The reason they teach it there is that scheme is designed to handle
computation theoretical concepts. Actually it was writen to handle a
logical approach to symbolic math (lambda notation) but basic theoretical
CS ideas fit nicely in that slot.
Scheme is very suitable for the book and course for several reasons. One that
it is very simple and yet powerful enough to accomodate for the needs of the
student. The other is that it contains the necessary primitives for
recursion, closures, numeric operations, etc. Finally, it is very trivial to
implement an interpreter or compiler for Scheme as is demonstrated in the
book.
Post by Micha Feigin
If you read the course book you will see that its supposed to be a very
interesting course with scheme used as a tool and not a goal. The course
kind of missed on that.
I took the two corresponding courses at the Technion (EE Faculty) under the
supervision of Prof. Jakob Katzenelson (who, BTW is credited in the second
edition of the book), and I never felt this way. In the Technion, the course
is not intended as an introducory course to programming, but rather as a
course for learning how to program and think about programming creatively. I
have read the book beforehand by reading it in one of the Technion libraries,
and yet I found that performing the exercises was highly enlightening.
(albeit for me - not too difficult).
Post by Micha Feigin
I think that course should be tought after the students have had some basic
programing experience so that things fit into place better,
Right. SICP is too abstract for absolute beginners. Beginners need a more
concrete and down-to-earth corriculum with more practical tasks.
Post by Micha Feigin
although I am
not sure if java is the right choice and c is definitely problematic. You
need to understand OO programing to handle java properly and it has some
problems with its approach to OO for teaching purposes and c is too
flexible for this purpose.
The problem with C is that it's too low-level and limiting for beginners.
Beginners shouldn't need to write a Hello World program with an obscure
#include <stdio.h> header, and an int main() function that returns 0. They
shouldn't have to use printf("My integer is %i\n") instead of print "My
integer is", i, "\n"; or something similar. And they don't need to be aware
of pointers with all their nuances and caveats. C also requires quite a lot
of code to do some extremely basic operations, which beginners would find
annoying.
C is now being taught as the introducory language in the Technion (and for
many students the language they'll use most of the time in their courses). I
can tell that many people without a prior experience in programming, find it
difficult to grasp and too hard. I really wish a different language was used.
When I started at least it was taught as the second language after scheme. From
doing later projects with people I can tell you it caused a lot of
misunderstandings and bad coding habits, especially the pointer stuff. Learning c
first also makes people use c++ as a functional language instead of as an OO
language.

A first language should be an OO one with clean syntax and no pointers. It
doesn't need to be a powerful, but it has to be clear and simple so that people
understand the concepts before they start using the heavy and obscure tools that
allow them to break the concepts. Some of the problem is that lecturers tend to
teach the language more then the concept (there are a few good ones, but then
the course is considered difficult and people try to avoid it ;-)
Post by Shlomi Fish
My sister is now a CS undergraduate student in the Technion. She learned
mostly ANSI C in the two introducery courses, but now she has the Data
Structures course, for which the computer exercises were given in C++. (with
classes, templates, functors, and other beasts). I don't see why they
couldn't have simply given the assignments in ANSI C if that's what they
taught the most.
BTW I'm not sure what was the first language I learned but IIRC it was LOGO if
anyone recalls that (IIRC correctly its also a variant of lisp - still exists,
called ucblogo under debian). I think the second language was basic (I used to
lock up the XT machines in high school drawing Mandelbrot sets in b/w using
basic).
Post by Shlomi Fish
Post by Micha Feigin
Tought as a first language it teaches people
very bad programing habits (mainly problems with good encasulation and
segregation)
Are you referring to Java or to C?
I'm referring to c here. As a first language its taught with great emphasis on
functional programing (as opposed to OO). Although it is, good functional
programing should take in mind OO ideas which make the code much more
maintainable.

I see a lot of code written by people who started out with c and there is a
tendency to use too many global variables, not defining functions as static when
they are used locally and shouldn't be globally visible, etc. Using callbacks is a
very neglected subject, and yes, pointers can make things very confusing at
first, although they can also be a very powerful tool if you use them correctly.

C++ is a bad language for beginners also since among other things its not strict
enough on OO (as it stays compliant with c) and really need to know what it does
behind the scenes if you don't want to have a very inefficient code in the end
(for example STL is not the best choice for programs that are supposed to be
real time and highly optimized). Besides, STL syntax can make things VERY
complicated at first.
Post by Shlomi Fish
Regards,
Shlomi Fish
---------------------------------------------------------------------
Homepage: http://www.shlomifish.org/
Knuth is not God! It took him two days to build the Roman Empire.
=================================================================
the word "unsubscribe" in the message body, e.g., run the command
+++++++++++++++++++++++++++++++++++++++++++
This Mail Was Scanned By Mail-seCure System
at the Tel-Aviv University CC.
=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
guy keren
2005-01-25 22:33:20 UTC
Permalink
Post by Micha Feigin
When I started at least it was taught as the second language after scheme. From
doing later projects with people I can tell you it caused a lot of
misunderstandings and bad coding habits, especially the pointer stuff. Learning c
first also makes people use c++ as a functional language instead of as an OO
language.
that's because the teachers are doing a lousy job (whether they are too
clueless, or don't care, or think that their job is writing the test and
letting the students learn from books - i don't know).
Post by Micha Feigin
A first language should be an OO one with clean syntax and no pointers. It
doesn't need to be a powerful, but it has to be clear and simple so that people
understand the concepts before they start using the heavy and obscure tools that
allow them to break the concepts. Some of the problem is that lecturers tend to
teach the language more then the concept (there area few good ones, but then
the course is considered difficult and people try to avoid it ;-)
i'll repeat again - picking on the language is less important then picking
on the teachers. even if you choose "the right language" (for whatever
"right" value you use) you'll solve nothing, since the teachers are not
teaching it properly.
Post by Micha Feigin
I'm referring to c here. As a first language its taught with great emphasis on
functional programing (as opposed to OO). Although it is, good functional
programing should take in mind OO ideas which make the code much more
maintainable.
you're mixing teaching and practicing. when you write code in C, indeed,
use what you know from OO. but don't teach everything at once - or else
people won't know when to use what, and will have a very shallow control
of too many concepts. i'd rather they have very good control or fewer
concepts.
Post by Micha Feigin
I see a lot of code written by people who started out with c and there is a
tendency to use too many global variables, not defining functions as static when
they are used locally and shouldn't be globally visible, etc. Using callbacks is a
very neglected subject, and yes, pointers can make things very confusing at
first, although they can also be a very powerful tool if you use them correctly.
it's the teachers. and the teachers again.

ofcourse, there are some people who don't have the qualities needed to
learn - but i think they are only responsible for part of the 'failures'.
the rest are the teachers - fix the teachers. use teachers that _want_ to
teach, that _know how to_ teach, and that have a talent for teaching.
Post by Micha Feigin
C++ is a bad language for beginners also since among other things its not strict
enough on OO (as it stays compliant with c) and really need to know what it does
behind the scenes if you don't want to have a very inefficient code in the end
(for example STL is not the best choice for programs that are supposed to be
real time and highly optimized). Besides, STL syntax can make things VERY
complicated at first.
STL is "good enough" for many things. students don't learn real time in
uni (or more correct - hardly any of them do). you're again mixing
teaching with practicing at work.
--
guy

"For world domination - press 1,
or dial 0, and please hold, for the creator." -- nob o. dy

=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Micha Feigin
2005-01-26 03:06:57 UTC
Permalink
On Wed, 26 Jan 2005 00:33:20 +0200 (IST)
Post by guy keren
Post by Micha Feigin
When I started at least it was taught as the second language after
scheme. From doing later projects with people I can tell you it
caused a lot of misunderstandings and bad coding habits, especially
the pointer stuff. Learning c first also makes people use c++ as a
functional language instead of as an OO language.
that's because the teachers are doing a lousy job (whether they are
too clueless, or don't care, or think that their job is writing the
test and letting the students learn from books - i don't know).
Post by Micha Feigin
A first language should be an OO one with clean syntax and no
pointers. It doesn't need to be a powerful, but it has to be clear
and simple so that people understand the concepts before they start
using the heavy and obscure tools that allow them to break the
concepts. Some of the problem is that lecturers tend to teach the
language more then the concept (there area few good ones, but then
the course is considered difficult and people try to avoid it ;-)
i'll repeat again - picking on the language is less important then
picking on the teachers. even if you choose "the right language" (for
whatever"right" value you use) you'll solve nothing, since the
teachers are not teaching it properly.
Post by Micha Feigin
I'm referring to c here. As a first language its taught with great
emphasis on functional programing (as opposed to OO). Although it
is, good functional programing should take in mind OO ideas which
make the code much more maintainable.
you're mixing teaching and practicing. when you write code in C,
indeed, use what you know from OO. but don't teach everything at once
- or else people won't know when to use what, and will have a very
shallow control of too many concepts. i'd rather they have very good
control or fewer concepts.
Post by Micha Feigin
I see a lot of code written by people who started out with c and
there is a tendency to use too many global variables, not defining
functions as static when they are used locally and shouldn't be
globally visible, etc. Using callbacks is a very neglected subject,
and yes, pointers can make things very confusing at first, although
they can also be a very powerful tool if you use them correctly.
it's the teachers. and the teachers again.
ofcourse, there are some people who don't have the qualities needed to
learn - but i think they are only responsible for part of the
'failures'. the rest are the teachers - fix the teachers. use teachers
that _want_ to teach, that _know how to_ teach, and that have a talent
for teaching.
Ahh, now you come to the big difference between uni and coledges
(mihlalot). In coledge they pay teachers to teach, in uni they make
proffesors teach as a requirement.

There are two problems. Teachers that are too smart to understand what
the students have trouble understanding and teachers who could care less
for teaching since they have better things to do.

But we are getting REALLY REALLY off toppic here and it seems like we
mostly agree anyway we are just trying to make each other see that ;-)
Post by guy keren
Post by Micha Feigin
C++ is a bad language for beginners also since among other things
its not strict enough on OO (as it stays compliant with c) and
really need to know what it does behind the scenes if you don't want
to have a very inefficient code in the end(for example STL is not
the best choice for programs that are supposed to be real time and
highly optimized). Besides, STL syntax can make things VERY
complicated at first.
STL is "good enough" for many things. students don't learn real time
in uni (or more correct - hardly any of them do). you're again mixing
teaching with practicing at work.
--
guy
"For world domination - press 1,
or dial 0, and please hold, for the creator." -- nob o. dy
+++++++++++++++++++++++++++++++++++++++++++
This Mail Was Scanned By Mail-seCure System
at the Tel-Aviv University CC.
=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Tzafrir Cohen
2005-01-26 07:37:55 UTC
Permalink
Post by Micha Feigin
first also makes people use c++ as a functional language instead of as an OO
language.
Just to get the terminology right: I figure you meant "procedural".

"Fuctional language" is the CS term for a language in which functions
are pure and have no side-effects. This is what LISP originally aimed at.

I'll refrain from further commenting on the off-topic thread.Should be
an interesting topic for discussion on hackers-il.
--
Tzafrir Cohen | New signature for new address and | VIM is
http://tzafrir.org.il | new homepage | a Mutt's
tzafrir-***@public.gmane.org | | best
ICQ# 16849755 | Space reserved for other protocols | friend

=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Ira Abramov
2005-01-26 08:25:58 UTC
Permalink
Post by Tzafrir Cohen
Post by Micha Feigin
first also makes people use c++ as a functional language instead of as an OO
language.
Just to get the terminology right: I figure you meant "procedural".
every 9-12 months, this argument about the best first language comes up.
half of the people arguing with opinions they won't gudge from and half
trying to throw in half-knowledgable remarks to show they too exist, and
never does anyone agree.

so allow me to add to the tradition! Python, gentlemen! it can be OO or
Procedural (and even pure functional I was once told). the syntax is
clean, very little syntactic sugar, no odd compilersyntax for a newbie
to learn, richer than Java, clearer than C and C++, and more widely used
in the practical world than Pascal or LISP.

Now get ready to rumbooooooooooooollllll!
--
Japanese Seizure Robot
Ira Abramov
http://ira.abramov.org/email/

=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
didi-Uo0HRlKCksNmR6Xm/ (Yedidyah Bar-David)
2005-01-26 08:52:14 UTC
Permalink
Post by Ira Abramov
Post by Tzafrir Cohen
Post by Micha Feigin
first also makes people use c++ as a functional language instead of as an OO
language.
Just to get the terminology right: I figure you meant "procedural".
every 9-12 months, this argument about the best first language comes up.
half of the people arguing with opinions they won't gudge from and half
trying to throw in half-knowledgable remarks to show they too exist, and
never does anyone agree.
so allow me to add to the tradition! Python, gentlemen! it can be OO or
Procedural (and even pure functional I was once told). the syntax is
clean, very little syntactic sugar, no odd compilersyntax for a newbie
to learn, richer than Java, clearer than C and C++, and more widely used
in the practical world than Pascal or LISP.
And, may I add, has a nice, free book, called "Learning with Python".
Maybe not as deep as "Structure and Interpretation ...", but not bad
either.
Post by Ira Abramov
Now get ready to rumbooooooooooooollllll!
Did you mean "Rambo", or "Rebol"? I am sure you'll find people that will
be in favour of Rebol as a first language.
:-)
--
Didi


=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Micha Feigin
2005-01-26 16:04:30 UTC
Permalink
On Wed, 26 Jan 2005 10:52:14 +0200
Post by didi-Uo0HRlKCksNmR6Xm/ (Yedidyah Bar-David)
Post by Ira Abramov
Post by Tzafrir Cohen
Post by Micha Feigin
first also makes people use c++ as a functional language instead of as an OO
language.
Just to get the terminology right: I figure you meant "procedural".
every 9-12 months, this argument about the best first language comes up.
half of the people arguing with opinions they won't gudge from and half
trying to throw in half-knowledgable remarks to show they too exist, and
never does anyone agree.
so allow me to add to the tradition! Python, gentlemen! it can be OO or
Procedural (and even pure functional I was once told). the syntax is
clean, very little syntactic sugar, no odd compilersyntax for a newbie
to learn, richer than Java, clearer than C and C++, and more widely used
in the practical world than Pascal or LISP.
And, may I add, has a nice, free book, called "Learning with Python".
Maybe not as deep as "Structure and Interpretation ...", but not bad
either.
Notice that "Structure and Interpretation ..." is not a lisp book, it used lisp
as a tool. Will have to look at learning python though, always wondered if its
going to be useful enough for me to spend the time learning, although I think
that for my work I am stuck with matlab and c (really don't feel like learning
fortran at this point ;-)
Post by didi-Uo0HRlKCksNmR6Xm/ (Yedidyah Bar-David)
Post by Ira Abramov
Now get ready to rumbooooooooooooollllll!
Did you mean "Rambo", or "Rebol"? I am sure you'll find people that will
be in favour of Rebol as a first language.
:-)
--
Didi
=================================================================
the word "unsubscribe" in the message body, e.g., run the command
+++++++++++++++++++++++++++++++++++++++++++
This Mail Was Scanned By Mail-seCure System
at the Tel-Aviv University CC.
=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Shlomi Fish
2005-01-26 17:03:41 UTC
Permalink
Post by Micha Feigin
On Wed, 26 Jan 2005 10:52:14 +0200
Post by didi-Uo0HRlKCksNmR6Xm/ (Yedidyah Bar-David)
Post by Ira Abramov
Post by Tzafrir Cohen
Post by Micha Feigin
first also makes people use c++ as a functional language instead of
as
an OO
Post by didi-Uo0HRlKCksNmR6Xm/ (Yedidyah Bar-David)
Post by Ira Abramov
Post by Tzafrir Cohen
Post by Micha Feigin
language.
Just to get the terminology right: I figure you meant "procedural".
every 9-12 months, this argument about the best first language comes
up. half of the people arguing with opinions they won't gudge from and
half trying to throw in half-knowledgable remarks to show they too
exist, and never does anyone agree.
so allow me to add to the tradition! Python, gentlemen! it can be OO or
Procedural (and even pure functional I was once told). the syntax is
clean, very little syntactic sugar, no odd compilersyntax for a newbie
to learn, richer than Java, clearer than C and C++, and more widely
used in the practical world than Pascal or LISP.
And, may I add, has a nice, free book, called "Learning with Python".
Maybe not as deep as "Structure and Interpretation ...", but not bad
either.
Notice that "Structure and Interpretation ..." is not a lisp book, it used
lisp as a tool. Will have to look at learning python though, always
wondered if its going to be useful enough for me to spend the time
learning, although I think that for my work I am stuck with matlab and c
(really don't feel like learning fortran at this point ;-)
Well, Perl, Python and friends can be used for many tasks for which neiter
Matlab nor C would be very suitable. Things like text processing and
generation, GUI programming, system administration, database handling,
networking, etc.

Of course, the combination of Matlab and C would be more suitable for
different tasks. I used Matlab extensively at the Technion, and I was very
impressed by the ease of programming certain tasks by translating them to
tensors' manipulation. Of course, Matlab as a language (from the CS
point-of-view) sucks pretty badly and it also has a very limited debugger.

There is a Perl extension called PDL (= Perl Data Language), which aims to
supply Perl with the same functionality as Matlab and similar programs.
(http://pdl.perl.org/). I suppose there are similar extensions for other
agile languages.

BTW, I heard from some people who wrote programs in Matlab for their projects
and home-assignments, that took hours on end to run. My programs never took a
lot of time to run, but then again, I knew how to translate them into
efficient Matrix manipulations. Is it normal for some Matlab program to take
a lot of time to run, even if it's well-written, or does this indicate Matlab
illiteracy?

(Matlab is interpreted by default, but its matrix operations and many
built-in-functions are hard-coded.)

Regards,

Shlomi Fish

---------------------------------------------------------------------
Shlomi Fish shlomif-ik1l9ssToec+JF/***@public.gmane.org
Homepage: http://www.shlomifish.org/

Knuth is not God! It took him two days to build the Roman Empire.

=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Micha Feigin
2005-01-26 19:18:24 UTC
Permalink
On Wed, 26 Jan 2005 19:03:41 +0200
Post by Shlomi Fish
Post by Micha Feigin
On Wed, 26 Jan 2005 10:52:14 +0200
Post by didi-Uo0HRlKCksNmR6Xm/ (Yedidyah Bar-David)
Post by Ira Abramov
Post by Tzafrir Cohen
Post by Micha Feigin
first also makes people use c++ as a functional language instead of
as
an OO
Post by didi-Uo0HRlKCksNmR6Xm/ (Yedidyah Bar-David)
Post by Ira Abramov
Post by Tzafrir Cohen
Post by Micha Feigin
language.
Just to get the terminology right: I figure you meant "procedural".
every 9-12 months, this argument about the best first language comes
up. half of the people arguing with opinions they won't gudge from and
half trying to throw in half-knowledgable remarks to show they too
exist, and never does anyone agree.
so allow me to add to the tradition! Python, gentlemen! it can be OO or
Procedural (and even pure functional I was once told). the syntax is
clean, very little syntactic sugar, no odd compilersyntax for a newbie
to learn, richer than Java, clearer than C and C++, and more widely
used in the practical world than Pascal or LISP.
And, may I add, has a nice, free book, called "Learning with Python".
Maybe not as deep as "Structure and Interpretation ...", but not bad
either.
Notice that "Structure and Interpretation ..." is not a lisp book, it used
lisp as a tool. Will have to look at learning python though, always
wondered if its going to be useful enough for me to spend the time
learning, although I think that for my work I am stuck with matlab and c
(really don't feel like learning fortran at this point ;-)
Well, Perl, Python and friends can be used for many tasks for which neiter
Matlab nor C would be very suitable. Things like text processing and
generation, GUI programming, system administration, database handling,
networking, etc.
Of course, the combination of Matlab and C would be more suitable for
different tasks. I used Matlab extensively at the Technion, and I was very
impressed by the ease of programming certain tasks by translating them to
tensors' manipulation. Of course, Matlab as a language (from the CS
point-of-view) sucks pretty badly and it also has a very limited debugger.
There is a Perl extension called PDL (= Perl Data Language), which aims to
supply Perl with the same functionality as Matlab and similar programs.
(http://pdl.perl.org/). I suppose there are similar extensions for other
agile languages.
Worked a bit with PDL and it was nice, IIRC there is a similar extension
to python, but I have no experience with it. There is scilab which is a nice
free matlab like environment. I don't have much experience with it wither but it
seems better then octave.

There are also numerous libraries for c (a lot of them written in fortran BTW)
which allow you to do almost anything.

I'm somewhat stuck with matlab, with occasional excursions to c though since I
need to collaborate with others.
Post by Shlomi Fish
BTW, I heard from some people who wrote programs in Matlab for their projects
and home-assignments, that took hours on end to run. My programs never took a
Depends on how they wrote them and how heavy the computation is. I have well
written programs that can run for several hours but considering the program
built a 50,000x50,000 matrix and then computed the first 3000 eigenvalues I
think three hours is a short time.
Post by Shlomi Fish
lot of time to run, but then again, I knew how to translate them into
efficient Matrix manipulations. Is it normal for some Matlab program to take
a lot of time to run, even if it's well-written, or does this indicate Matlab
illiteracy?
If you write your code to use matrix notation it will run rather fast. Matlab
can be rediculosly slow with loops. I tried writing the same code using matrix
notation and loops and it turned out to be a difference of a few seconds
compared to over an hour.

BTW matlab also has a profiler and you can alway use the internal compiler to
make faster running executables.
Post by Shlomi Fish
(Matlab is interpreted by default, but its matrix operations and many
built-in-functions are hard-coded.)
You can also write extenssions in c and java.
Post by Shlomi Fish
Regards,
Shlomi Fish
---------------------------------------------------------------------
Homepage: http://www.shlomifish.org/
Knuth is not God! It took him two days to build the Roman Empire.
=================================================================
the word "unsubscribe" in the message body, e.g., run the command
+++++++++++++++++++++++++++++++++++++++++++
This Mail Was Scanned By Mail-seCure System
at the Tel-Aviv University CC.
=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Shlomi Fish
2005-02-08 19:38:06 UTC
Permalink
Post by Micha Feigin
On Wed, 26 Jan 2005 19:03:41 +0200
Post by Shlomi Fish
Post by Micha Feigin
On Wed, 26 Jan 2005 10:52:14 +0200
Post by didi-Uo0HRlKCksNmR6Xm/ (Yedidyah Bar-David)
Post by Ira Abramov
Post by Tzafrir Cohen
Post by Micha Feigin
first also makes people use c++ as a functional language
instead of as
an OO
Post by didi-Uo0HRlKCksNmR6Xm/ (Yedidyah Bar-David)
Post by Ira Abramov
Post by Tzafrir Cohen
Post by Micha Feigin
language.
Just to get the terminology right: I figure you meant "procedural".
every 9-12 months, this argument about the best first language
comes up. half of the people arguing with opinions they won't gudge
from and half trying to throw in half-knowledgable remarks to show
they too exist, and never does anyone agree.
so allow me to add to the tradition! Python, gentlemen! it can be
OO or Procedural (and even pure functional I was once told). the
syntax is clean, very little syntactic sugar, no odd compilersyntax
for a newbie to learn, richer than Java, clearer than C and C++,
and more widely used in the practical world than Pascal or LISP.
And, may I add, has a nice, free book, called "Learning with Python".
Maybe not as deep as "Structure and Interpretation ...", but not bad
either.
Notice that "Structure and Interpretation ..." is not a lisp book, it
used lisp as a tool. Will have to look at learning python though,
always wondered if its going to be useful enough for me to spend the
time learning, although I think that for my work I am stuck with matlab
and c (really don't feel like learning fortran at this point ;-)
Well, Perl, Python and friends can be used for many tasks for which
neiter Matlab nor C would be very suitable. Things like text processing
and generation, GUI programming, system administration, database
handling, networking, etc.
Of course, the combination of Matlab and C would be more suitable for
different tasks. I used Matlab extensively at the Technion, and I was
very impressed by the ease of programming certain tasks by translating
them to tensors' manipulation. Of course, Matlab as a language (from the
CS point-of-view) sucks pretty badly and it also has a very limited
debugger.
There is a Perl extension called PDL (= Perl Data Language), which aims
to supply Perl with the same functionality as Matlab and similar
programs. (http://pdl.perl.org/). I suppose there are similar extensions
for other agile languages.
Worked a bit with PDL and it was nice, IIRC there is a similar extension
to python, but I have no experience with it.
I think it's called SciPy. I think it's not as complete as PDL, which is
itself not as complete as Matlab.
Post by Micha Feigin
There is scilab which is a
nice free matlab like environment. I don't have much experience with it
wither but it seems better then octave.
Yes. Scilab, however, is incompatible with Matlab in its syntax (some things
there are more powerful, or otherwise different). There's a program that
converts Matlab code to Scilab one, but not the other way around.
Post by Micha Feigin
There are also numerous libraries for c (a lot of them written in fortran
BTW) which allow you to do almost anything.
Hmmm.. yes.
Post by Micha Feigin
I'm somewhat stuck with matlab, with occasional excursions to c though
since I need to collaborate with others.
OK.
Post by Micha Feigin
Post by Shlomi Fish
BTW, I heard from some people who wrote programs in Matlab for their
projects and home-assignments, that took hours on end to run. My programs
never took a
Depends on how they wrote them and how heavy the computation is. I have
well written programs that can run for several hours but considering the
program built a 50,000x50,000 matrix and then computed the first 3000
eigenvalues I think three hours is a short time.
Right. I don't suppose the same program in C would have been much faster.
Post by Micha Feigin
Post by Shlomi Fish
lot of time to run, but then again, I knew how to translate them into
efficient Matrix manipulations. Is it normal for some Matlab program to
take a lot of time to run, even if it's well-written, or does this
indicate Matlab illiteracy?
If you write your code to use matrix notation it will run rather fast.
Matlab can be rediculosly slow with loops. I tried writing the same code
using matrix notation and loops and it turned out to be a difference of a
few seconds compared to over an hour.
:-) Nice.
Post by Micha Feigin
BTW matlab also has a profiler and you can alway use the internal compiler
to make faster running executables.
OK.
Post by Micha Feigin
Post by Shlomi Fish
(Matlab is interpreted by default, but its matrix operations and many
built-in-functions are hard-coded.)
You can also write extenssions in c and java.
Right. Of course, most students don't have the knowledge and/or time
constraints to do this.

Regards,

Shlomi Fish

---------------------------------------------------------------------
Shlomi Fish shlomif-ik1l9ssToec+JF/***@public.gmane.org
Homepage: http://www.shlomifish.org/

Knuth is not God! It took him two days to build the Roman Empire.

=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
michael-ptyVM0kFTBIZJoxd8Nyi7wC/
2005-02-08 10:16:45 UTC
Permalink
Take a look at processing: www.processing.org. It was designed to teach
programming to artists, but in the end you end up learning Java. It's
free, and it runs under Linux.

If you do install it, take a look at the examples to see how easy it is
to code up very impressive results.

The big plus is that you get incredibly cool results really quickly, so
beginers are gratified immediately. This encourages them to try things
out and to learn more.

Michael
Post by Shlomi Fish
Post by Micha Feigin
On Wed, 26 Jan 2005 19:03:41 +0200
Post by Shlomi Fish
Post by Micha Feigin
On Wed, 26 Jan 2005 10:52:14 +0200
Post by didi-Uo0HRlKCksNmR6Xm/ (Yedidyah Bar-David)
Post by Ira Abramov
Post by Tzafrir Cohen
Post by Micha Feigin
first also makes people use c++ as a functional language
instead of as
an OO
Post by didi-Uo0HRlKCksNmR6Xm/ (Yedidyah Bar-David)
Post by Ira Abramov
Post by Tzafrir Cohen
Post by Micha Feigin
language.
Just to get the terminology right: I figure you meant
"procedural".
every 9-12 months, this argument about the best first language
comes up. half of the people arguing with opinions they won't gudge
from and half trying to throw in half-knowledgable remarks to show
they too exist, and never does anyone agree.
so allow me to add to the tradition! Python, gentlemen! it can be
OO or Procedural (and even pure functional I was once told). the
syntax is clean, very little syntactic sugar, no odd compilersyntax
for a newbie to learn, richer than Java, clearer than C and C++,
and more widely used in the practical world than Pascal or LISP.
And, may I add, has a nice, free book, called "Learning with Python".
Maybe not as deep as "Structure and Interpretation ...", but not bad
either.
Notice that "Structure and Interpretation ..." is not a lisp book, it
used lisp as a tool. Will have to look at learning python though,
always wondered if its going to be useful enough for me to spend the
time learning, although I think that for my work I am stuck with matlab
and c (really don't feel like learning fortran at this point ;-)
Well, Perl, Python and friends can be used for many tasks for which
neiter Matlab nor C would be very suitable. Things like text processing
and generation, GUI programming, system administration, database
handling, networking, etc.
Of course, the combination of Matlab and C would be more suitable for
different tasks. I used Matlab extensively at the Technion, and I was
very impressed by the ease of programming certain tasks by translating
them to tensors' manipulation. Of course, Matlab as a language (from the
CS point-of-view) sucks pretty badly and it also has a very limited
debugger.
There is a Perl extension called PDL (= Perl Data Language), which aims
to supply Perl with the same functionality as Matlab and similar
programs. (http://pdl.perl.org/). I suppose there are similar extensions
for other agile languages.
Worked a bit with PDL and it was nice, IIRC there is a similar extension
to python, but I have no experience with it.
I think it's called SciPy. I think it's not as complete as PDL, which is
itself not as complete as Matlab.
Post by Micha Feigin
There is scilab which is a
nice free matlab like environment. I don't have much experience with it
wither but it seems better then octave.
Yes. Scilab, however, is incompatible with Matlab in its syntax (some things
there are more powerful, or otherwise different). There's a program that
converts Matlab code to Scilab one, but not the other way around.
Post by Micha Feigin
There are also numerous libraries for c (a lot of them written in fortran
BTW) which allow you to do almost anything.
Hmmm.. yes.
Post by Micha Feigin
I'm somewhat stuck with matlab, with occasional excursions to c though
since I need to collaborate with others.
OK.
Post by Micha Feigin
Post by Shlomi Fish
BTW, I heard from some people who wrote programs in Matlab for their
projects and home-assignments, that took hours on end to run. My programs
never took a
Depends on how they wrote them and how heavy the computation is. I have
well written programs that can run for several hours but considering the
program built a 50,000x50,000 matrix and then computed the first 3000
eigenvalues I think three hours is a short time.
Right. I don't suppose the same program in C would have been much faster.
Post by Micha Feigin
Post by Shlomi Fish
lot of time to run, but then again, I knew how to translate them into
efficient Matrix manipulations. Is it normal for some Matlab program to
take a lot of time to run, even if it's well-written, or does this
indicate Matlab illiteracy?
If you write your code to use matrix notation it will run rather fast.
Matlab can be rediculosly slow with loops. I tried writing the same code
using matrix notation and loops and it turned out to be a difference of a
few seconds compared to over an hour.
:-) Nice.
Post by Micha Feigin
BTW matlab also has a profiler and you can alway use the internal compiler
to make faster running executables.
OK.
Post by Micha Feigin
Post by Shlomi Fish
(Matlab is interpreted by default, but its matrix operations and many
built-in-functions are hard-coded.)
You can also write extenssions in c and java.
Right. Of course, most students don't have the knowledge and/or time
constraints to do this.
Regards,
Shlomi Fish
---------------------------------------------------------------------
Homepage: http://www.shlomifish.org/
Knuth is not God! It took him two days to build the Roman Empire.
=================================================================
the word "unsubscribe" in the message body, e.g., run the command
=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Yishay Mor
2005-02-09 02:07:46 UTC
Permalink
Here's a few more:

http://www.squeak.org/
http://toontalk.com/ (which we use in WebLabs - http://www.weblabs.eu.com)
http://csis.pace.edu/~bergin/karel.html and
http://xkarel.sourceforge.net/eng/
And of course, the queen mother of educational languages,
http://en.wikipedia.org/wiki/Logo_programming_language

And some more listed on:
http://www-jime.open.ac.uk/98/6/roschelle-04.html
Post by michael-ptyVM0kFTBIZJoxd8Nyi7wC/
Take a look at processing: www.processing.org. It was designed to teach
programming to artists, but in the end you end up learning Java. It's
free, and it runs under Linux.
If you do install it, take a look at the examples to see how easy it is
to code up very impressive results.
The big plus is that you get incredibly cool results really quickly, so
beginers are gratified immediately. This encourages them to try things
out and to learn more.
Michael
Post by Shlomi Fish
Post by Micha Feigin
On Wed, 26 Jan 2005 19:03:41 +0200
Post by Shlomi Fish
Post by Micha Feigin
On Wed, 26 Jan 2005 10:52:14 +0200
Post by didi-Uo0HRlKCksNmR6Xm/ (Yedidyah Bar-David)
Post by Ira Abramov
Post by Tzafrir Cohen
Post by Micha Feigin
first also makes people use c++ as a functional language
instead of as
an OO
Post by didi-Uo0HRlKCksNmR6Xm/ (Yedidyah Bar-David)
Post by Ira Abramov
Post by Tzafrir Cohen
Post by Micha Feigin
language.
Just to get the terminology right: I figure you meant
"procedural".
every 9-12 months, this argument about the best first language
comes up. half of the people arguing with opinions they won't gudge
from and half trying to throw in half-knowledgable remarks to show
they too exist, and never does anyone agree.
so allow me to add to the tradition! Python, gentlemen! it can be
OO or Procedural (and even pure functional I was once told). the
syntax is clean, very little syntactic sugar, no odd compilersyntax
for a newbie to learn, richer than Java, clearer than C and C++,
and more widely used in the practical world than Pascal or LISP.
And, may I add, has a nice, free book, called "Learning with Python".
Maybe not as deep as "Structure and Interpretation ...", but not bad
either.
Notice that "Structure and Interpretation ..." is not a lisp book, it
used lisp as a tool. Will have to look at learning python though,
always wondered if its going to be useful enough for me to spend the
time learning, although I think that for my work I am stuck with matlab
and c (really don't feel like learning fortran at this point ;-)
Well, Perl, Python and friends can be used for many tasks for which
neiter Matlab nor C would be very suitable. Things like text processing
and generation, GUI programming, system administration, database
handling, networking, etc.
Of course, the combination of Matlab and C would be more suitable for
different tasks. I used Matlab extensively at the Technion, and I was
very impressed by the ease of programming certain tasks by translating
them to tensors' manipulation. Of course, Matlab as a language (from the
CS point-of-view) sucks pretty badly and it also has a very limited
debugger.
There is a Perl extension called PDL (= Perl Data Language), which aims
to supply Perl with the same functionality as Matlab and similar
programs. (http://pdl.perl.org/). I suppose there are similar extensions
for other agile languages.
Worked a bit with PDL and it was nice, IIRC there is a similar extension
to python, but I have no experience with it.
I think it's called SciPy. I think it's not as complete as PDL, which is
itself not as complete as Matlab.
Post by Micha Feigin
There is scilab which is a
nice free matlab like environment. I don't have much experience with it
wither but it seems better then octave.
Yes. Scilab, however, is incompatible with Matlab in its syntax (some things
there are more powerful, or otherwise different). There's a program that
converts Matlab code to Scilab one, but not the other way around.
Post by Micha Feigin
There are also numerous libraries for c (a lot of them written in fortran
BTW) which allow you to do almost anything.
Hmmm.. yes.
Post by Micha Feigin
I'm somewhat stuck with matlab, with occasional excursions to c though
since I need to collaborate with others.
OK.
Post by Micha Feigin
Post by Shlomi Fish
BTW, I heard from some people who wrote programs in Matlab for their
projects and home-assignments, that took hours on end to run. My programs
never took a
Depends on how they wrote them and how heavy the computation is. I have
well written programs that can run for several hours but considering the
program built a 50,000x50,000 matrix and then computed the first 3000
eigenvalues I think three hours is a short time.
Right. I don't suppose the same program in C would have been much faster.
Post by Micha Feigin
Post by Shlomi Fish
lot of time to run, but then again, I knew how to translate them into
efficient Matrix manipulations. Is it normal for some Matlab program to
take a lot of time to run, even if it's well-written, or does this
indicate Matlab illiteracy?
If you write your code to use matrix notation it will run rather fast.
Matlab can be rediculosly slow with loops. I tried writing the same code
using matrix notation and loops and it turned out to be a difference of a
few seconds compared to over an hour.
:-) Nice.
Post by Micha Feigin
BTW matlab also has a profiler and you can alway use the internal compiler
to make faster running executables.
OK.
Post by Micha Feigin
Post by Shlomi Fish
(Matlab is interpreted by default, but its matrix operations and many
built-in-functions are hard-coded.)
You can also write extenssions in c and java.
Right. Of course, most students don't have the knowledge and/or time
constraints to do this.
Regards,
Shlomi Fish
---------------------------------------------------------------------
Homepage: http://www.shlomifish.org/
Knuth is not God! It took him two days to build the Roman Empire.
=================================================================
the word "unsubscribe" in the message body, e.g., run the command
=================================================================
the word "unsubscribe" in the message body, e.g., run the command
--
_________________________________________
| Research Officer, www.WebLabs.eu.com |
| y.mor-xaKI+XbQf9Vaa/***@public.gmane.org +44-20-77632160 fax 2138|
| Yahoo, Jabber, AIM: yishaym(@jabber.org)|
| 23-29 Emerald Street, London WC1N 3QS |
|_________________________________________|




=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Ira Abramov
2005-02-09 09:41:02 UTC
Permalink
Post by Yishay Mor
http://www.squeak.org/
http://toontalk.com/ (which we use in WebLabs - http://www.weblabs.eu.com)
http://csis.pace.edu/~bergin/karel.html and
http://xkarel.sourceforge.net/eng/
And of course, the queen mother of educational languages,
http://en.wikipedia.org/wiki/Logo_programming_language
all these fail the simple test of real-world usefulness. with Python you
write psuedocode and it just RUNS. it's very easy to teach, very
powerful to use, and it IS used in the real world, so you can start
hacking on real code right away.
--
Lord of the Rings
Ira Abramov
http://ira.abramov.org/email/

=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Shlomi Fish
2005-02-09 11:14:30 UTC
Permalink
Post by Ira Abramov
Post by Yishay Mor
http://www.squeak.org/
http://toontalk.com/ (which we use in WebLabs -
http://www.weblabs.eu.com) http://csis.pace.edu/~bergin/karel.html and
http://xkarel.sourceforge.net/eng/
And of course, the queen mother of educational languages,
http://en.wikipedia.org/wiki/Logo_programming_language
all these fail the simple test of real-world usefulness. with Python you
write psuedocode and it just RUNS.
Many Pythoneers rave about how Python is runnable Pseudocode. However, this is
completely not true, as Python code is not pseudo-code. In Pseudocode you can
use any notation you like (even an inconcistent one) as long as the algorithm
is correct. For example, you can use Len(a), len(a), a.len(), a.Len(),
Length(a), a.Length(), length(a), a.length() or something with
{n,N}um_items(), {c,C}ount(), or whatever. In Python only one of these
notations will work.

In Pseudo-code you can indent using tabs or a few spaces interchangebly, or
use curly braces ({ ... }). In Python you can't.

Another thing to note is that I'm not sure Python code will be understandable
by people who are not familiar with it, with OOP, etc. Pseudo-code can be
understood by people with a minimal amount of CS education.

I once talked about it with people in the IRC, and someone mentioned he has
written a 200-lines Python program and had to make only 20 changes to get it
to compile and run. I told him they were 20 changes too many, because in
Pseudocode, he would need 0.

Regards,

Shlomi Fish

---------------------------------------------------------------------
Shlomi Fish shlomif-ik1l9ssToec+JF/***@public.gmane.org
Homepage: http://www.shlomifish.org/

Knuth is not God! It took him two days to build the Roman Empire.

=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Omer Zak
2005-02-09 11:55:33 UTC
Permalink
Post by Shlomi Fish
I once talked about it with people in the IRC, and someone mentioned he has
written a 200-lines Python program and had to make only 20 changes to get it
to compile and run. I told him they were 20 changes too many, because in
Pseudocode, he would need 0.
I disagree with the numbers.
Pseudocode is good as a design tool. When you design an algorithm, you
want to tweak it until the design is right (as tested by simulations
inside your head).

This involves changes in the algorithm.
Even if it is written in pseudocode.

In fact, you choose the most optimal pseudocode for this stage of your
project - the pseudocode which best matches your problem domain, and
which allows you the most parsimonious ways to express the algorithm and
tweak it.

I am CC'ing this on Hackers-IL mailing list and I suggest that this
interesting discussion be shifted to Hackers-IL.
--- Omer
--
My own blog is at http://www.livejournal.com/users/tddpirate/

My opinions, as expressed in this E-mail message, are mine alone.
They do not represent the official policy of any organization with which
I may be affiliated in any way.
WARNING TO SPAMMERS: at http://www.zak.co.il/spamwarning.html




Yahoo! Groups Links

<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/hackers-il/

<*> To unsubscribe from this group, send an email to:
hackers-il-unsubscribe-***@public.gmane.org

<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
Ira Abramov
2005-02-09 11:52:51 UTC
Permalink
Post by Shlomi Fish
Post by Ira Abramov
all these fail the simple test of real-world usefulness. with Python
you write psuedocode and it just RUNS.
Many Pythoneers rave about how Python is runnable Pseudocode. However,
of course it's not. it's an interpreter, not a human language AI
machine. However it has a very natural, sensible and consistant syntax.
readable for beginners much LIKE pseudocode.
Post by Shlomi Fish
written a 200-lines Python program and had to make only 20 changes to get it
to compile and run. I told him they were 20 changes too many, because in
Pseudocode, he would need 0.
show me even an experianced programmer that has 0 changes to make in 200
lines of C or Perl or even Logo before it runs the first time... If you
write such an interpreter that will "do as they mean, not what they
say", I promiss you will be a very wealthy man indeed.
--
Tantric sex god
Ira Abramov
http://ira.abramov.org/email/

=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Arik Baratz
2005-02-10 12:46:40 UTC
Permalink
Post by Shlomi Fish
Another thing to note is that I'm not sure Python code will be understandable
by people who are not familiar with it, with OOP, etc. Pseudo-code can be
understood by people with a minimal amount of CS education.
Shlomi,

I think Pseudo-code needs to transmit an idea. Describe an idea in a
way that is relatively accurate and compact. When you want to describe
an algorithm in a way that it can be readily programmed.

It does NOT NOT NOT need to be understood by people without CS
education or little CS education, because writing pseudo-code already
intends your article to this type of audience.
Post by Shlomi Fish
From my experience with real people, python-esque pseudo-code is well
understood by people 'skilled in the art'. Even 2-page algorithms.

And Shlomi, stop nitpicking. If there is one way to find the len() of
an object, and that limits you in the pseudo-code that you are
writing, well, I can't do anything for you, but for me (and I believe
for most) it is EASIER to READ pseudo-code written in a single,
consistant way. Yes I know it's the one-way vs. many-ways argument,
but I think it holds especially for code that is read ONLY by humans,
and almost never by a computer.

-- Arik

=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Micha Feigin
2005-02-09 04:47:57 UTC
Permalink
On Tue, 8 Feb 2005 21:38:06 +0200
Post by Shlomi Fish
Post by Micha Feigin
On Wed, 26 Jan 2005 19:03:41 +0200
[ ... snip ... ]
Post by Shlomi Fish
Post by Micha Feigin
Worked a bit with PDL and it was nice, IIRC there is a similar extension
to python, but I have no experience with it.
I think it's called SciPy. I think it's not as complete as PDL, which is
itself not as complete as Matlab.
Actually I was thinking of python-numeric (NumPy) but from the documentation
scipy is intended to supplement python numeric.
Post by Shlomi Fish
Post by Micha Feigin
There is scilab which is a
nice free matlab like environment. I don't have much experience with it
wither but it seems better then octave.
Yes. Scilab, however, is incompatible with Matlab in its syntax (some things
there are more powerful, or otherwise different). There's a program that
converts Matlab code to Scilab one, but not the other way around.
And the converter is a bit problematic. The basic language at least is rather
close to matlab though.

You can always use octave which is compatible with something like matlab 4 or 5.
Post by Shlomi Fish
Post by Micha Feigin
There are also numerous libraries for c (a lot of them written in fortran
BTW) which allow you to do almost anything.
Hmmm.. yes.
For some things they are actually the best solution in terms of ease of
programing. One example is for complex numerical PDE boundary value problems
with non uniform grids and/or non square domains (gladly I haven't had to
do this personally yet, but its from very informed sources). Also for nonlinear
ODEs where shock or near shock solutions call for non-uniform and non-static
grids. I can give a few others also.

Matlab is mainly strong in tensor/matrix arithmetic but when its hard to define
the problem that way it can get very inefficient and/or complicated.
Post by Shlomi Fish
Post by Micha Feigin
I'm somewhat stuck with matlab, with occasional excursions to c though
since I need to collaborate with others.
OK.
Post by Micha Feigin
Post by Shlomi Fish
BTW, I heard from some people who wrote programs in Matlab for their
projects and home-assignments, that took hours on end to run. My programs
never took a
Depends on how they wrote them and how heavy the computation is. I have
well written programs that can run for several hours but considering the
program built a 50,000x50,000 matrix and then computed the first 3000
eigenvalues I think three hours is a short time.
Right. I don't suppose the same program in C would have been much faster.
I did actually and it took about the same. I did use the same library that
matlab uses (arpack) though so its probably not a good comparison (you need to
be REALLY masochistic to re-implement that one ;-)
Post by Shlomi Fish
Post by Micha Feigin
Post by Shlomi Fish
lot of time to run, but then again, I knew how to translate them into
efficient Matrix manipulations. Is it normal for some Matlab program to
take a lot of time to run, even if it's well-written, or does this
indicate Matlab illiteracy?
If you write your code to use matrix notation it will run rather fast.
Matlab can be rediculosly slow with loops. I tried writing the same code
using matrix notation and loops and it turned out to be a difference of a
few seconds compared to over an hour.
:-) Nice.
Post by Micha Feigin
BTW matlab also has a profiler and you can alway use the internal compiler
to make faster running executables.
OK.
Post by Micha Feigin
Post by Shlomi Fish
(Matlab is interpreted by default, but its matrix operations and many
built-in-functions are hard-coded.)
You can also write extenssions in c and java.
Right. Of course, most students don't have the knowledge and/or time
constraints to do this.
Its not that difficult and we have several students that do it in our lab for a
workshop my supervisor is running (although it more for accessing external
hardware then to improve speed).

For c there is a library for handling the interface to matlab and java is
supposed to run from inside matlab (the whole editor user interface is actually
written in java. Try running matlab -nojvm under *nix, you will get a text only
interface, although it can still display figures).

Most students are probably unaware of this support or think that its
complicated, or otherwise the idea of using matlab is to learn matlab and not
how to bypass it (such as numerical analysis courses). Its usually useful for
much more complex stuff or to access external system functions (access to
hardware for example) so its also not very useful for most B.Sc and M.Sc
problems.
Post by Shlomi Fish
Regards,
Shlomi Fish
---------------------------------------------------------------------
Homepage: http://www.shlomifish.org/
Knuth is not God! It took him two days to build the Roman Empire.
+++++++++++++++++++++++++++++++++++++++++++
This Mail Was Scanned By Mail-seCure System
at the Tel-Aviv University CC.
=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Yedidyah Bar-David
2005-01-26 18:03:39 UTC
Permalink
Post by Micha Feigin
On Wed, 26 Jan 2005 10:52:14 +0200
Post by didi-Uo0HRlKCksNmR6Xm/ (Yedidyah Bar-David)
And, may I add, has a nice, free book, called "Learning with Python".
Maybe not as deep as "Structure and Interpretation ...", but not bad
either.
Notice that "Structure and Interpretation ..." is not a lisp book, it used lisp
as a tool. Will have to look at learning python though, always wondered if its
going to be useful enough for me to spend the time learning, although I think
that for my work I am stuck with matlab and c (really don't feel like learning
fortran at this point ;-)
Tt does have a secondary title which is "How to Think Like a Computer
Scientist". It does aim much lower than Structure etc., as I said.
--
Didi


=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Oleg Goldshmidt
2005-01-26 15:02:36 UTC
Permalink
Learning c first also makes people use c++ as a functional language
instead of as an OO language.
Sorry for jumping, but where does this come from?

Since when is C functional or C++ Object Oriented? Is this what
students are taught at the Technion?

FWIW, C is nowhere near functional, C++ supports object orientation
alongside other programming paradigms (those who do not believe me
should re-read Stroustroup[1]), et caetera, et caetera...
A first language should be an OO one with clean syntax and no
pointers.
Why? Why OO? Why no pointers? Sounds like a prejudice to me...

There is a lot to be said in favor of learning bottom-to-top. E.g. it
is easier to ask oneself what the machine does when it executes this
statement? We are not talking about laymen, but about future
professionals here, right? How about: the first programming language
should be interpreted?
It doesn't need to be a powerful, but it has to be clear and simple
so that people understand the concepts before they start using the
heavy and obscure tools that allow them to break the concepts.
What has it got to do with the language choice?
Post by Shlomi Fish
My sister is now a CS undergraduate student in the Technion. She
learned mostly ANSI C in the two introducery courses, but now she
has the Data Structures course, for which the computer exercises
were given in C++. (with classes, templates, functors, and other
beasts). I don't see why they couldn't have simply given the
assignments in ANSI C if that's what they taught the most.
Maybe. But that's a completely different issue, isn't it?
Post by Shlomi Fish
Post by Micha Feigin
Tought as a first language it teaches people very bad programing
habits (mainly problems with good encasulation and segregation)
Hmm... Up to now I have not been aware of any connection between
language choice and bad programming habits. Now, C does not teach
anything. If particular instructors teach bad programming habits
that's a different issue again.
I'm referring to c here. As a first language its taught with great
emphasis on functional programing
Sorry, but once again: C does not support functional programming. I am
guessing here, but you probably mean procedural programming, or
imperative programming. Those are quite different from functional, but
I seriously doubt these big words (any of them) are ever uttered
during introductory courses, and I don't see anything wrong with the
imperative paradigm (on a practical level; theoretically, one can give
a long discourse on, say, side effects, but that would be a different
thread) in any case.
(as opposed to OO).
C does support OO to a limited extent, though. The techniques used for
that may seem unfamiliar to people used to C++, but the paradigm is
there (again, to a limit) and is actively used.
Although it is, good functional programing should take in mind OO
ideas which make the code much more maintainable.
I am sorry, Micha, I am getting a very strong impression that your
views on good and bad programming languages are based on prejudice. It
might or might not be related to the way you were taught. Don't take
me wrong, I am sure there is nothing really wrong with the way you
were taught, allow me only to suggest to take statements like "all
programs should be OO" or "C leads to bad encapsulation" or "C++ is an
object-oriented language" or other stuff like that with a sizeable
grain of salt. In general, it is a good idea to take anything teachers
say with a grain of salt. They are just people, even the best of them.

Now, where were we? Ah, Linux-IL. Linux is written in C. There is some
object-oriented stuff (in C) in the kernel. Marking subject [OT].

[1] Stroustroup devotes a sizeable part of his classic text to
different programming paradigms that C++ supports. Object-oriented
is mentioned, too. All too often, though, this part of the book is
skipped by the readers.
--
Oleg Goldshmidt | pub-rcVq/H47zGVl/gN+E+***@public.gmane.org

=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Shlomi Fish
2005-01-26 15:22:21 UTC
Permalink
Post by Oleg Goldshmidt
Learning c first also makes people use c++ as a functional language
instead of as an OO language.
Sorry for jumping, but where does this come from?
Since when is C functional or C++ Object Oriented? Is this what
students are taught at the Technion?
As Tzafrir noted, by "Functional" he meant "Procedural". As in "Procedural
code is code that is not Object-Oriented."
Post by Oleg Goldshmidt
FWIW, C is nowhere near functional, C++ supports object orientation
alongside other programming paradigms (those who do not believe me
should re-read Stroustroup[1]), et caetera, et caetera...
Well, I haven't read Stroustroup (yet, at least), but I came up with this
sentence:

<<<
C++ supports Object-Oriented Programming roughly as much as COBOL supports
Functional Programming.[1]
C and what was C++ at that point was the second language I learned after
Basic. I thought C++'s object-orientation was pretty good, but then I learned
Perl, where OOP is so much better: cleaner, more consistent, causes less
problems, more powerful, and simply "just works". This caused me to
understand that C++'s OOP-ness as something incredibly horrid and
dysfunctional.

This is naturally not limited to Perl. I'm pretty sure the Object-Orientedness
given by Python, Ruby, LISP (CLOS, etc.) and similar high-level, non
strongly-typed languages is also very good.
Post by Oleg Goldshmidt
A first language should be an OO one with clean syntax and no
pointers.
Why? Why OO? Why no pointers? Sounds like a prejudice to me...
There is a lot to be said in favor of learning bottom-to-top. E.g. it
is easier to ask oneself what the machine does when it executes this
statement? We are not talking about laymen, but about future
professionals here, right? How about: the first programming language
should be interpreted?
Well, I'm not sure the first language should be OO, and I tend to dislike
overly-OO languages. OOP can be learned later on, where the course or student
focuses explictly on learning OOP as a paradigm. But the first language may
allow non-OO code to be written easily, so that people start writing
algorithms and code, and don't mess too much with classes and objects.

I should note that the first programming language should be high-level, so
people won't have to mess with pointers, memory allocation and release,
buffer overflows, types, and all the other characteristics of a low-level
language like C.
Post by Oleg Goldshmidt
It doesn't need to be a powerful, but it has to be clear and simple
so that people understand the concepts before they start using the
heavy and obscure tools that allow them to break the concepts.
What has it got to do with the language choice?
Post by Micha Feigin
Tought as a first language it teaches people very bad programing
habits (mainly problems with good encasulation and segregation)
Hmm... Up to now I have not been aware of any connection between
language choice and bad programming habits. Now, C does not teach
anything. If particular instructors teach bad programming habits
that's a different issue again.
This reminds me of what Dijkstra said about various languages of his day
including BASIC, COBOL, Fortran, etc. and what people often tell me when I
tell them the first programming language I learned was BASIC. I saw a
goto-spaghetti in BASIC and it wasn't a pretty sight. But when I learned
programming in BASIC, the booklets that I used to learn from taught me to
think in Structured Programming concepts like loops, conditionals and (to a
lesser extent) sub-routines. So I had no problem learning C and Pascal and
other structured programming languages later on.

In any case, Oleg is right.
Post by Oleg Goldshmidt
I'm referring to c here. As a first language its taught with great
emphasis on functional programing
Sorry, but once again: C does not support functional programming. I am
guessing here, but you probably mean procedural programming, or
imperative programming. Those are quite different from functional, but
I seriously doubt these big words (any of them) are ever uttered
during introductory courses, and I don't see anything wrong with the
imperative paradigm (on a practical level; theoretically, one can give
a long discourse on, say, side effects, but that would be a different
thread) in any case.
Not every task calls for OOP. I tend to frown upon code that uses global
variables because such a code cannot be instantized. So I tend to advocate
passing a pointer or reference to a struct containing context between the
functions. But those functions can otherwise be procedural, and not use too
many OOP concepts.

In functions that have good syntatical support for OOP, I tend to make it an
object, but many times I don't inherit this object.
Post by Oleg Goldshmidt
(as opposed to OO).
C does support OO to a limited extent, though. The techniques used for
that may seem unfamiliar to people used to C++, but the paradigm is
there (again, to a limit) and is actively used.
Right. Look at Gtk+ for a prime example. Of course, it requires quite a lot of
code, using pointers to functions, casts, and other relatively non-trivial
tricks.
Post by Oleg Goldshmidt
Although it is, good functional programing should take in mind OO
ideas which make the code much more maintainable.
I am sorry, Micha, I am getting a very strong impression that your
views on good and bad programming languages are based on prejudice. It
might or might not be related to the way you were taught. Don't take
me wrong, I am sure there is nothing really wrong with the way you
were taught, allow me only to suggest to take statements like "all
programs should be OO" or "C leads to bad encapsulation" or "C++ is an
object-oriented language" or other stuff like that with a sizeable
grain of salt. In general, it is a good idea to take anything teachers
say with a grain of salt. They are just people, even the best of them.
:-)
Post by Oleg Goldshmidt
Now, where were we? Ah, Linux-IL. Linux is written in C. There is some
object-oriented stuff (in C) in the kernel. Marking subject [OT].
[1] Stroustroup devotes a sizeable part of his classic text to
different programming paradigms that C++ supports. Object-oriented
is mentioned, too. All too often, though, this part of the book is
skipped by the readers.
Interesting. I recall the interview with A. Stepanov, the designer of STL:

http://www.stlport.org/resources/StepanovUSA.html

Where he talks about Generic Programming, and says that C++ supports it better
than any other language he knows. The interview is interesting, but I must
say, that I haven't found a need yet for Generic Programming in my programs.
Are Multi-methods considered generic programming:

http://search.cpan.org/~dconway/Class-Multimethods-1.70/lib/Class/Multimethods.pod

Regards,

Shlomi Fish


[1] - Functional Programming involves treating functions as first-order
objects and building all code with functions, usually without side-effects.
COBOL is a language that doesn't even allow procedural recursion.

---------------------------------------------------------------------
Shlomi Fish shlomif-ik1l9ssToec+JF/***@public.gmane.org
Homepage: http://www.shlomifish.org/

Knuth is not God! It took him two days to build the Roman Empire.

=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Micha Feigin
2005-01-26 16:49:00 UTC
Permalink
On 26 Jan 2005 15:02:36 +0000
Post by Oleg Goldshmidt
Learning c first also makes people use c++ as a functional language
instead of as an OO language.
Sorry for jumping, but where does this come from?
Experience ...
Post by Oleg Goldshmidt
Since when is C functional or C++ Object Oriented? Is this what
students are taught at the Technion?
I got my degree in TAU, but C is procedural. You can use OO ideas, but its still
procedural in nature. The language has no concept of object, and while you can
use function pointers for callbacks in structs and using an enum as the first
item in the struct to enable rtti, inheritance etc. it doesn't make it an OO
language.
Post by Oleg Goldshmidt
FWIW, C is nowhere near functional, C++ supports object orientation
alongside other programming paradigms (those who do not believe me
should re-read Stroustroup[1]), et caetera, et caetera...
Although Stroustroup was one of the designers of C++ and I read his book, he
took things to the near edge of uselessness trying to make things theoretically
correct.

And yes, C++ is a procedural language with OO syntax slapped on top. That can be
good and bad. It gives you flexibility but allows you to seriously abuse good
design practices if you are not careful.
Post by Oleg Goldshmidt
A first language should be an OO one with clean syntax and no
pointers.
Why? Why OO? Why no pointers? Sounds like a prejudice to me...
OO because in the first place its much easier to go from OO -> procedural then
the other way around. Most people going procedural -> OO tend to still do
procedural programing using OO syntax for a lot of time.

As for pointer, I love pointers, I'd be lost without them (drives me crazy
programming matlab with no pointers and without the ?: operator). The problem is
that they are difficult to grasp which means that the initial courses usually
spend half their time teaching pointers instead of programming. References can
get you most of the way there with a lot less obscurity.
Post by Oleg Goldshmidt
There is a lot to be said in favor of learning bottom-to-top. E.g. it
is easier to ask oneself what the machine does when it executes this
statement? We are not talking about laymen, but about future
professionals here, right? How about: the first programming language
should be interpreted?
I think that here a top to bottom approach is better. First understand what
programing is and then understand what the computer does. Try to understand a
radio when the teachers avoids telling you that its a machine that plays music
and you have no electronics experience at the same time.
Post by Oleg Goldshmidt
It doesn't need to be a powerful, but it has to be clear and simple
so that people understand the concepts before they start using the
heavy and obscure tools that allow them to break the concepts.
What has it got to do with the language choice?
Try teaching Perl as a first language ...
Post by Oleg Goldshmidt
Post by Shlomi Fish
My sister is now a CS undergraduate student in the Technion. She
learned mostly ANSI C in the two introducery courses, but now she
has the Data Structures course, for which the computer exercises
were given in C++. (with classes, templates, functors, and other
beasts). I don't see why they couldn't have simply given the
assignments in ANSI C if that's what they taught the most.
Maybe. But that's a completely different issue, isn't it?
Post by Shlomi Fish
Post by Micha Feigin
Tought as a first language it teaches people very bad programing
habits (mainly problems with good encasulation and segregation)
Hmm... Up to now I have not been aware of any connection between
language choice and bad programming habits. Now, C does not teach
anything. If particular instructors teach bad programming habits
that's a different issue again.
The problem is that instructors insert into their teaching how they grasp the
language. If you had a GOOD instructor then it would have been less critical,
but considering we are living in the real world you need to take the instructor
and student psychology into account and not only that most languages could be
used to teach programming mostly any way you want.
Post by Oleg Goldshmidt
I'm referring to c here. As a first language its taught with great
emphasis on functional programing
Sorry, but once again: C does not support functional programming. I am
guessing here, but you probably mean procedural programming, or
I thought we arrived at that conclusion already. I'm a math person at the
moment since I got tired of debugging stack overflows and stray uninitialized
bits on embedded systems and I really didn't feel like going into GUI work. Its
been some time since I dealt with the exact terminology so forgive me =o
Post by Oleg Goldshmidt
imperative programming. Those are quite different from functional, but
I seriously doubt these big words (any of them) are ever uttered
during introductory courses, and I don't see anything wrong with the
imperative paradigm (on a practical level; theoretically, one can give
a long discourse on, say, side effects, but that would be a different
thread) in any case.
We already are on a very different thread.
Post by Oleg Goldshmidt
(as opposed to OO).
C does support OO to a limited extent, though. The techniques used for
that may seem unfamiliar to people used to C++, but the paradigm is
there (again, to a limit) and is actively used.
The paradigm is not there. The fact that has very low level support and is very
flexible allows you to push it into there.
Post by Oleg Goldshmidt
Although it is, good functional programing should take in mind OO
ideas which make the code much more maintainable.
I am sorry, Micha, I am getting a very strong impression that your
views on good and bad programming languages are based on prejudice. It
might or might not be related to the way you were taught. Don't take
Its based on working with quite a few people, good and bad, including being an
active participant in several uni projects while already having some experience
and seeing a lot of very high quality work and very low quality work. Besides,
I'm rather good at understand what people don't understand (even if I'm always
very good at fixing the misunderstanding ;-)

Considering I'm promoting OO here while my tools of choice are very low level
(I used to be quite comfortable debugging programs at the assembly level in
hex mode) and for me OO code is very cumbersome, I don't think that this is due
to prejudice.
Post by Oleg Goldshmidt
me wrong, I am sure there is nothing really wrong with the way you
were taught, allow me only to suggest to take statements like "all
There were a lot of problems with the way I was taught. If I hadn't bothered to
pick up the books to learn proper design techniques and work hard to implement
them in the uni projects to actually understand what they say, and to learn from
some excellent programmers at work(thanks guys) I would also be a very mediocre
programer now.
Post by Oleg Goldshmidt
programs should be OO" or "C leads to bad encapsulation" or "C++ is an
I didn't say C leads to bad encapsulation, I said they way C tends to be taught
and the lack of time as a TA to check the students code properly to give the
right comments leads to bad encapsulation (plus most TA and instructors in UNI
are academics and not programmers. A lot of them don't know how to program
correctly themselves).
Post by Oleg Goldshmidt
object-oriented language" or other stuff like that with a sizable
grain of salt. In general, it is a good idea to take anything teachers
say with a grain of salt. They are just people, even the best of them.
And like I said, most of them are academics and programing is an afterthought,
not a tool of the trade. Maybe if the basic courses were taught by good SE,
although its hard enough to find good programmers for a work place, not to
mention teaching. I don't think that you will get high quality teaching without
cramming the right material down the teachers throats.
Post by Oleg Goldshmidt
Now, where were we? Ah, Linux-IL. Linux is written in C. There is some
object-oriented stuff (in C) in the kernel. Marking subject [OT].
[1] Stroustroup devotes a sizeable part of his classic text to
different programming paradigms that C++ supports. Object-oriented
is mentioned, too. All too often, though, this part of the book is
skipped by the readers.
That's because the guy is taking what is supposed to be practical programming to
the far edge of theoretical ideas, which shouldn't be implemented in real life
work.
Post by Oleg Goldshmidt
--
=================================================================
the word "unsubscribe" in the message body, e.g., run the command
+++++++++++++++++++++++++++++++++++++++++++
This Mail Was Scanned By Mail-seCure System
at the Tel-Aviv University CC.
=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Shlomi Fish
2005-01-26 18:02:41 UTC
Permalink
Post by Micha Feigin
On 26 Jan 2005 15:02:36 +0000
Post by Oleg Goldshmidt
Since when is C functional or C++ Object Oriented? Is this what
students are taught at the Technion?
I got my degree in TAU, but C is procedural. You can use OO ideas, but its
still procedural in nature. The language has no concept of object, and
while you can use function pointers for callbacks in structs and using an
enum as the first item in the struct to enable rtti, inheritance etc. it
doesn't make it an OO language.
I think Oleg asked if C was functional (as in Functional Programming - Scheme,
ML, Haskell, etc.), not if it's procedural.

C indeed does not have any built-in primitives for objects. That's what C++
and Objective C are for. Nevertheless, sometimes it is possible to implement
OOP on top of languages which are not inherently OO in a nice way. As far as
I know CLOS (Common LISP Object System) is implemented entirely in user-land.
Post by Micha Feigin
Post by Oleg Goldshmidt
Post by Micha Feigin
A first language should be an OO one with clean syntax and no
pointers.
Why? Why OO? Why no pointers? Sounds like a prejudice to me...
OO because in the first place its much easier to go from OO -> procedural
then the other way around. Most people going procedural -> OO tend to still
do procedural programing using OO syntax for a lot of time.
There is a problem in this thinking. Does the first course in programming
should also cover other paradigms? People who are used to programs with
assignment may find Functional Programming difficult. Should we teach
Functional Programming? How about Aspect-Oriented Programming? Etc.

We have to limit ourselves to something. I don't see object oriented
programming as a necessary paradigm to be tought in the introducory course.
By all means people can be introduced to it later on. And yes, teaching OOP
using C++ is a bad idea. By all means a higher-level language should be used.
Post by Micha Feigin
As for pointer, I love pointers, I'd be lost without them (drives me crazy
programming matlab with no pointers and without the ?: operator).
The
problem is that they are difficult to grasp which means that the initial
courses usually spend half their time teaching pointers instead of
programming. References can get you most of the way there with a lot less
obscurity.
Right. References and Garbage Collection.
Post by Micha Feigin
Post by Oleg Goldshmidt
There is a lot to be said in favor of learning bottom-to-top. E.g. it
is easier to ask oneself what the machine does when it executes this
statement? We are not talking about laymen, but about future
professionals here, right? How about: the first programming language
should be interpreted?
I think that here a top to bottom approach is better. First understand what
programing is and then understand what the computer does. Try to understand
a radio when the teachers avoids telling you that its a machine that plays
music and you have no electronics experience at the same time.
Right.
Post by Micha Feigin
Post by Oleg Goldshmidt
Post by Micha Feigin
It doesn't need to be a powerful, but it has to be clear and simple
so that people understand the concepts before they start using the
heavy and obscure tools that allow them to break the concepts.
What has it got to do with the language choice?
Try teaching Perl as a first language ...
I'm not sure Perl would be a very bad choice for a first language, even though
many people, including many Perl programmers seem to think so. Granted, the
core language is huge, and full of nuances. However, you don't need to teach
all of it at once. Perl has the advantage of being perfectly usable for every
subset of the language that is learned. It's also a language that grows with
you and can be used for any task you'll need, so schools can use it later on.

Simon Cozens gave his positive opinion on teaching Perl as a first language
here:

http://www.perl.com/pub/a/1999/11/cozens.htm

There's also a discussion about Perl suitability or lack of it as a first
language, here:

http://xrl.us/evo6 (Link to use.perl.org)

In it, Damian Conway points to an artile he and Linda McIver wrote titled
"Seven Deadly Sins of Introducory Programming Language Design":

http://www.csse.monash.edu.au/~damian/papers/

I once contacted Dr. McIver about the thesis she wrote in which she wrote a
spec for a beginner-friendly programming language. I have read the spec. If I
can summarize this language in one word it would be "sexless". No references
(only structs within structs). Two types - an integer and a string and
structs of them and other structs of them as the only types available. <-
(&larr;) for assignment, and other Unicode operators. (albeit this is
forgivable). No objects, and no syntactic sugar. Not something I'd enjoy
programming in, and not something I'd enjoy teaching others.

Incidentally, I talked with a correpsondant of mine, who said he'd rather
teach beginners Perl instead of C, just as he would prefer to teach English
instead of Esperanto. The reason is because they would be able to express
themselves with Perl, very nicely.

All of that said, it is possible that Python would be a better language for
beginning programmers.
Post by Micha Feigin
Post by Oleg Goldshmidt
C does support OO to a limited extent, though. The techniques used for
that may seem unfamiliar to people used to C++, but the paradigm is
there (again, to a limit) and is actively used.
The paradigm is not there. The fact that has very low level support and is
very flexible allows you to push it into there.
If I wrote a language with good support for dictionaries (hashes in
Perl-speak), support for references and callbacks, (functions are first-order
objects), and some ability to define syntactic sugar. Then, I would construct
a full-featured object system in user-land using these primitives. Would you
then also say that the paradigm is not there?
Post by Micha Feigin
Post by Oleg Goldshmidt
me wrong, I am sure there is nothing really wrong with the way you
were taught, allow me only to suggest to take statements like "all
There were a lot of problems with the way I was taught. If I hadn't
bothered to pick up the books to learn proper design techniques and work
hard to implement them in the uni projects to actually understand what they
say, and to learn from some excellent programmers at work(thanks guys) I
would also be a very mediocre programer now.
:-)

Regards,

Shlomi Fish

---------------------------------------------------------------------
Shlomi Fish shlomif-ik1l9ssToec+JF/***@public.gmane.org
Homepage: http://www.shlomifish.org/

Knuth is not God! It took him two days to build the Roman Empire.

=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Shlomi Fish
2005-01-24 11:40:23 UTC
Permalink
Post by Danny Lieberman
muli
Lisp is the language of Autocad - Scheme is the language of the TAU CS
dept. Acad has a bigger install base. ;-)
LISP is not really one language, but a family of languages. It includes
Scheme, Common LISP, Goo, historical variants such as MacLisp, and also
specialized dialects like Emacs LISP (for Emacs), or Autolisp (for Autocad).

LISP had a long evolution with many things added or changed in between. One of
the fundamental things that have changed was the switch from dynamic scoping
(a la the shell's local myvar=myval behaviour) to lexical scoping (similar to
Lambda Calculus or Algol). Lexical Scoping was introduced in Scheme, and
later incorporated into Common LISP, but many older dialects (including Emacs
LISP) still use dynamic scoping.

If you're going to teach LISP you should teach one of the commonly
implemented, lexically-scoped variants, such as Scheme or Common LISP. I
wouldn't recommend teaching Autolisp because that would require the students
to run Windows, and Autocad, which are unnecessary proprietary dependencies.
And I'm not sure if Autolisp is lexically-scoped.

Note that many other non-LISP languages have borrowed many elements from
various LISP variants.

Regards,

Shlomi Fish

[Rant about the quality of university graduates snipped. ]


---------------------------------------------------------------------
Shlomi Fish shlomif-ik1l9ssToec+JF/***@public.gmane.org
Homepage: http://www.shlomifish.org/

Knuth is not God! It took him two days to build the Roman Empire.

=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Oded Arbel
2005-01-24 13:32:20 UTC
Permalink
Post by Shlomi Fish
Post by Danny Lieberman
muli
Lisp is the language of Autocad - Scheme is the language of the TAU
CS dept. Acad has a bigger install base. ;-)
LISP is not really one language, but a family of languages. It
includes Scheme, Common LISP, Goo, historical variants such as
MacLisp, and also specialized dialects like Emacs LISP (for Emacs),
or Autolisp (for Autocad).
And GOAL (Game Object Assembly Lisp) as used to write leading Sony
Playstation 2 titles ;-)
http://c2.com/cgi/wiki?LispInJakAndDaxter
--
Oded

::..
We ARE as gods and might as well get good at it.
-- Whole Earth Catalog

================================================================To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Gilad Ben-Yossef
2005-01-24 12:38:32 UTC
Permalink
Post by Danny Lieberman
There is something very wrong with the system when a CS grad needs 1-2
years of industry experience to be able to program whereas
a first year student at the Rubin Academy of music can sit in any ANY
ensemble, sight read and make music.
Professional muscians practice 3-6 hours/day - how many hours a day does
a professional programmer practice?
When I hire a programmer - I expect him or her to be able to be
productive immediately just the way a contrabass player can read music
and play in a group;
just like its ok for a clarinet player to spend some time learning bass
clarinet I have no problem with hiring a programmer for a Cobol slot if
she can learn Cobol over the weekend
You seem to be making the very common but equelly wrong assumption that
Academic institution teach programming (or "software engineering" as it
is sometimes referred to). They don't - they teach Computer Science,
which is something completely different.

Computer science is sometime useful to a programmer, but not in the
direct sense you expect. To use your own analogy, you seem to expect
that a major in Physics of sound waves (or some such) will be able to
play the flute.

Our poor major of "Physics of sound waves 101" might very well be a
flute player due to his arcance knowledge about sound waves and the
physics involed, but he still needs to learn to play the flute first.

In fact, if you will check history you will learn that "Computer
Science" is a horrible misnomer since it predates computers
themselves... :-)

In short, if you want someone who knows Computer Science, a university
degree is one very good indication to locate what you want, but if
you're looking for a programmer, you bet find someone that can program
regardless of his university degree because they don't teach programming
in university.


Cheers,
Gilad
--
Gilad Ben-Yossef <gilad-***@public.gmane.org>
Codefidence. A name you can trust(tm)
Web: http://codefidence.com | SIP: gilad-/***@public.gmane.org
Tel: +972.9.8650475 ext. 201 | Fax: +972.9.8850643

"I am Jack's Overwritten Stack Pointer"
-- Hackers Club, the movie

=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Danny Lieberman
2005-01-24 14:30:03 UTC
Permalink
Gilad

No arguments there - the best programmers I ever had the privilege to
work with were either engineers or physicists - mostly physicists :-)
In other words; a Computer Scientist is like a Musicologist - they
perform theoretical study of the field and are equally likely to be
proficient performing musicians or programmers

However it may be instructive to compare professional musicians and
professional programmers (btw many programmers play)

1. musicians practice all the time and learn by emulating other
performers as part of their theoretical studies
2. CS student who "emulate" are thrown out for cheating (hackers emulate)

1.musicians are trained to play together in groups of 2, 3 ,5 ,7, 17 etc..
2. CS students might do a 2 or 3 man project once or twice - working
together is called "cheating".

1. musicians can sit in with a professional ensemble and play from the
chart in their first year
2. CS students cant even dream of working in a professional programming
team in their first tyear

1. musicians learn from the conductor in many different rehearsal
settings every day
2. CS students learn from books or peers, the notion of a "prgrm
rehearsal doesnt exist

1. music is the ultimate open source - over 1000 years old?
2. ergo programmers have a lot to learn from musicians

cheers
danny
Post by Gilad Ben-Yossef
Post by Danny Lieberman
There is something very wrong with the system when a CS grad needs
1-2 years of industry experience to be able to program whereas
a first year student at the Rubin Academy of music can sit in any ANY
ensemble, sight read and make music.
Professional muscians practice 3-6 hours/day - how many hours a day
does a professional programmer practice?
When I hire a programmer - I expect him or her to be able to be
productive immediately just the way a contrabass player can read
music and play in a group;
just like its ok for a clarinet player to spend some time learning
bass clarinet I have no problem with hiring a programmer for a Cobol
slot if she can learn Cobol over the weekend
You seem to be making the very common but equelly wrong assumption
that Academic institution teach programming (or "software engineering"
as it is sometimes referred to). They don't - they teach Computer
Science, which is something completely different.
Computer science is sometime useful to a programmer, but not in the
direct sense you expect. To use your own analogy, you seem to expect
that a major in Physics of sound waves (or some such) will be able to
play the flute.
Our poor major of "Physics of sound waves 101" might very well be a
flute player due to his arcance knowledge about sound waves and the
physics involed, but he still needs to learn to play the flute first.
In fact, if you will check history you will learn that "Computer
Science" is a horrible misnomer since it predates computers
themselves... :-)
In short, if you want someone who knows Computer Science, a university
degree is one very good indication to locate what you want, but if
you're looking for a programmer, you bet find someone that can program
regardless of his university degree because they don't teach
programming in university.
Cheers,
Gilad
--
Danny Lieberman
Visit us at http://www.software.co.il
Office + 972 8 970-1485
Cell + 972 54 447-1114



=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Gilad Ben-Yossef
2005-01-24 15:05:18 UTC
Permalink
Post by Danny Lieberman
No arguments there - the best programmers I ever had the privilege to
work with were either engineers or physicists - mostly physicists :-)
In other words; a Computer Scientist is like a Musicologist - they
perform theoretical study of the field and are equally likely to be
proficient performing musicians or programmers
However it may be instructive to compare professional musicians and
professional programmers (btw many programmers play)
I think you're more right then most people (non programmers at least)
realize: Muslicology is a science (well, for some defintion of science
at least) while music is an art form. In the same way Computer Science
is a science while programming is an art form.

Gilad
--
Gilad Ben-Yossef <gilad-***@public.gmane.org>
Codefidence. A name you can trust(tm)
Web: http://codefidence.com | SIP: gilad-/***@public.gmane.org
Tel: +972.9.8650475 ext. 201 | Fax: +972.9.8850643

"I am Jack's Overwritten Stack Pointer"
-- Hackers Club, the movie

=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Micha Feigin
2005-01-25 02:14:40 UTC
Permalink
At Mon, 24 Jan 2005 17:05:18 +0200,
Post by Gilad Ben-Yossef
Post by Danny Lieberman
No arguments there - the best programmers I ever had the privilege to
work with were either engineers or physicists - mostly physicists :-)
In other words; a Computer Scientist is like a Musicologist - they
perform theoretical study of the field and are equally likely to be
proficient performing musicians or programmers
However it may be instructive to compare professional musicians and
professional programmers (btw many programmers play)
I think you're more right then most people (non programmers at least)
realize: Muslicology is a science (well, for some defintion of science
at least) while music is an art form. In the same way Computer Science
is a science while programming is an art form.
Not to insult anyone, but I think physics is science and engineering is
implenation is closer to the relation between CS and Programing then musicology
is a science and music is art ;-)

You need to be careful with too much creativity when programing if you want a
chance for someone else to debug you program later, just as you would want the
bridge to remain up no matter how creative the engineer wants to be while a song
can stand on its head for all you care (although it may sound bad or try and
convince you to eat dog food and worship the devil if you play it backwards).
Post by Gilad Ben-Yossef
Gilad
--
Codefidence. A name you can trust(tm)
Tel: +972.9.8650475 ext. 201 | Fax: +972.9.8850643
"I am Jack's Overwritten Stack Pointer"
-- Hackers Club, the movie
=================================================================
the word "unsubscribe" in the message body, e.g., run the command
+++++++++++++++++++++++++++++++++++++++++++
This Mail Was Scanned By Mail-seCure System
at the Tel-Aviv University CC.
=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Gilad Ben-Yossef
2005-01-25 07:56:57 UTC
Permalink
Post by Micha Feigin
Not to insult anyone, but I think physics is science and engineering is
implenation is closer to the relation between CS and Programing then musicology
is a science and music is art ;-)
Hey, no problem - I think engineering can be an art form too! :-)
Post by Micha Feigin
You need to be careful with too much creativity when programing if you want a
chance for someone else to debug you program later, just as you would want the
bridge to remain up no matter how creative the engineer wants to be while a song
can stand on its head for all you care (although it may sound bad or try and
convince you to eat dog food and worship the devil if you play it backwards).
That the bridge or building should stand no matter what happens does not
mean it cannot be aesthetically pleasing, fit it's surroundings and be
"artistic" all the while being functional as well. In fact, it takes a
great artist to achieve all of these qualities together.

As for collaboration - the amount of sync there is between the members
of a Jazz band while improvising will be a great boon to any programming
team.

Hey, Danny - I think you've got a winner :-)

Gilad
--
Gilad Ben-Yossef <gilad-***@public.gmane.org>
Codefidence. A name you can trust(tm)
Web: http://codefidence.com | SIP: gilad-/***@public.gmane.org
Tel: +972.9.8650475 ext. 201 | Fax: +972.9.8850643

"I am Jack's Overwritten Stack Pointer"
-- Hackers Club, the movie

=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Vasiliev Michael
2005-01-25 00:25:56 UTC
Permalink
Post by Danny Lieberman
Gilad
No arguments there - the best programmers I ever had the privilege to
work with were either engineers or physicists - mostly physicists :-)
In other words; a Computer Scientist is like a Musicologist - they
perform theoretical study of the field and are equally likely to be
proficient performing musicians or programmers
However it may be instructive to compare professional musicians and
professional programmers (btw many programmers play)
1. musicians practice all the time and learn by emulating other
performers as part of their theoretical studies
2. CS student who "emulate" are thrown out for cheating (hackers emulate)
I disagree with that statement to some point. The very goal of studies, as
traditionally presented, is to learn to emulate or "model" your teacher in
solving problems of some sort. This barely gives you the tools to solve
problems of sort unknown to you, to which no theory still exists, or draw new
theories. However, musicians are given tools and ways to know to play all
existing music and composers know how to compose new music of known or
unknown style and it still sounds like music.
There is a nice book called "The Programmers' Stone", by Alan G. Carter and
Colston Sanger. The autors try to understand what's going on in a mind of a
programmer. Nice reading.
Post by Danny Lieberman
1.musicians are trained to play together in groups of 2, 3 ,5 ,7, 17 etc..
2. CS students might do a 2 or 3 man project once or twice - working
together is called "cheating".
Well they still do it, most of the time. Ideas belong to a group, only the
implementations are different. The very difference is that you can't compare
their way of thinking. Ordinary good musicians are "packers", great
programmers and composers are clearly "mappers". Also an interesting thing is
that long-time team coworkers tend to generate identical ideas,
simultaneously, as they share the same "map".
Post by Danny Lieberman
1. musicians can sit in with a professional ensemble and play from the
chart in their first year
2. CS students cant even dream of working in a professional programming
team in their first year
Most CS students. Some programmers never feel the need to study CS, as in to
go to university. Define me what you call a successful programmer, then we'll
talk. :)
Post by Danny Lieberman
1. musicians learn from the conductor in many different rehearsal
settings every day
2. CS students learn from books or peers, the notion of a "prgrm
rehearsal doesnt exist
Yet. We don't really know what makes a good programmer, do we? So far we are
as close to making one as showing a student what other people do in hope he
does the same. Doing it Better(tm) is something entirely different. Few
musicians become composers, a fraction of composers become good composers.
One or two of these are remembered 100 years later. CS is IMO still too, too
young to draw any lines or make conclusions.
Post by Danny Lieberman
1. music is the ultimate open source - over 1000 years old?
I beg You pardon? That's the most flagrant underestimation since Mercutio's
famous last words. The Ancient Greeks knew almost everything we know about
music which they connected to math. The history of music goes back to tribal
cave sounds around the fire and the invention of the bow, which is believed
to be an early prototype of the harp. :)
Post by Danny Lieberman
2. ergo programmers have a lot to learn from musicians
So, the question is, can you really compare? ;)
--
Sincerely Yours,
Vasiliev Michael

NP: XMMS is not loaded.

=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Micha Feigin
2005-01-25 02:30:02 UTC
Permalink
At Tue, 25 Jan 2005 02:25:56 +0200,
Post by Vasiliev Michael
Post by Danny Lieberman
Gilad
No arguments there - the best programmers I ever had the privilege to
work with were either engineers or physicists - mostly physicists :-)
In other words; a Computer Scientist is like a Musicologist - they
perform theoretical study of the field and are equally likely to be
proficient performing musicians or programmers
However it may be instructive to compare professional musicians and
professional programmers (btw many programmers play)
1. musicians practice all the time and learn by emulating other
performers as part of their theoretical studies
2. CS student who "emulate" are thrown out for cheating (hackers emulate)
I disagree with that statement to some point. The very goal of studies, as
traditionally presented, is to learn to emulate or "model" your teacher in
solving problems of some sort. This barely gives you the tools to solve
problems of sort unknown to you, to which no theory still exists, or draw new
theories. However, musicians are given tools and ways to know to play all
existing music and composers know how to compose new music of known or
unknown style and it still sounds like music.
There is a nice book called "The Programmers' Stone", by Alan G. Carter and
Colston Sanger. The autors try to understand what's going on in a mind of a
programmer. Nice reading.
Post by Danny Lieberman
1.musicians are trained to play together in groups of 2, 3 ,5 ,7, 17 etc..
2. CS students might do a 2 or 3 man project once or twice - working
together is called "cheating".
Well they still do it, most of the time. Ideas belong to a group, only the
implementations are different. The very difference is that you can't compare
their way of thinking. Ordinary good musicians are "packers", great
programmers and composers are clearly "mappers". Also an interesting thing is
that long-time team coworkers tend to generate identical ideas,
simultaneously, as they share the same "map".
Post by Danny Lieberman
1. musicians can sit in with a professional ensemble and play from the
chart in their first year
2. CS students cant even dream of working in a professional programming
team in their first year
Most CS students. Some programmers never feel the need to study CS, as in to
go to university. Define me what you call a successful programmer, then we'll
talk. :)
Post by Danny Lieberman
1. musicians learn from the conductor in many different rehearsal
settings every day
2. CS students learn from books or peers, the notion of a "prgrm
rehearsal doesnt exist
Yet. We don't really know what makes a good programmer, do we? So far we are
as close to making one as showing a student what other people do in hope he
does the same. Doing it Better(tm) is something entirely different. Few
musicians become composers, a fraction of composers become good composers.
One or two of these are remembered 100 years later. CS is IMO still too, too
young to draw any lines or make conclusions.
Post by Danny Lieberman
1. music is the ultimate open source - over 1000 years old?
I beg You pardon? That's the most flagrant underestimation since Mercutio's
famous last words. The Ancient Greeks knew almost everything we know about
music which they connected to math. The history of music goes back to tribal
cave sounds around the fire and the invention of the bow, which is believed
to be an early prototype of the harp. :)
On the other hand, with current copyright laws and recording campanies
behaviour, modern music is very far from open source.
Post by Vasiliev Michael
Post by Danny Lieberman
2. ergo programmers have a lot to learn from musicians
So, the question is, can you really compare? ;)
--
Sincerely Yours,
Vasiliev Michael
NP: XMMS is not loaded.
=================================================================
the word "unsubscribe" in the message body, e.g., run the command
+++++++++++++++++++++++++++++++++++++++++++
This Mail Was Scanned By Mail-seCure System
at the Tel-Aviv University CC.
=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Tzafrir Cohen
2005-01-25 04:31:51 UTC
Permalink
Post by Danny Lieberman
Gilad
No arguments there - the best programmers I ever had the privilege to
work with were either engineers or physicists - mostly physicists :-)
In other words; a Computer Scientist is like a Musicologist - they
perform theoretical study of the field and are equally likely to be
proficient performing musicians or programmers
However it may be instructive to compare professional musicians and
professional programmers (btw many programmers play)
1. musicians practice all the time and learn by emulating other
performers as part of their theoretical studies
2. CS student who "emulate" are thrown out for cheating (hackers emulate)
That's called practicing (not in the medical sense, mind you).
Homework is the way to gain experince. If you let someone else do the
practicing for you, you won't get very far as a musician as well.

Anyway, they can do the work together, if they indeed understand it
separately. One rule of thumb is that if you discuss it together and
each of you writes it down independently, then chances are you
understood it. (Think about derived work in copyrights)

Sadly, though, students tend to not do even that and submit almost
verbatim copies of other people's works without understanding them.
Post by Danny Lieberman
1.musicians are trained to play together in groups of 2, 3 ,5 ,7, 17 etc..
2. CS students might do a 2 or 3 man project once or twice - working
together is called "cheating".
There are many group assignments. But again, you have to make sure that
those were not actually singelton assinments in practice. In practice
they often are.
Post by Danny Lieberman
1. musicians can sit in with a professional ensemble and play from the
chart in their first year
2. CS students cant even dream of working in a professional programming
team in their first tyear
A programmer in the first year is not expected to program.
Post by Danny Lieberman
1. musicians learn from the conductor in many different rehearsal
settings every day
2. CS students learn from books or peers, the notion of a "prgrm
rehearsal doesnt exist
Lectures? Tutorails? (when students actually attend) Labs? Recepcion
hours?
--
Tzafrir Cohen | New signature for new address and | VIM is
http://tzafrir.org.il | new homepage | a Mutt's
tzafrir-***@public.gmane.org | | best
ICQ# 16849755 | Space reserved for other protocols | friend

=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Nadav Har'El
2005-01-25 11:18:30 UTC
Permalink
Post by Danny Lieberman
1. musicians practice all the time and learn by emulating other
performers as part of their theoretical studies
2. CS student who "emulate" are thrown out for cheating (hackers emulate)
#2 is not true. "Cheating" is not emulating others. In fact, everything you do
throughout your studies - called "learning" - is actually emulation - you
see how your professors and TAs solve problems, and you try to solve these
and other problems in similar ways. You are also allowed to learn from your
fellow classmates, if you want. This sort of learning or emulation is
considered perfectly legitimate, and even recommended. To get a 100 on a
course, you're not expected to innovate - you're expect to emulate what
your teachers do, in the setting of test or project.

"cheating" is another thing - it means making taking an exact copy of other
people's work, and passing it as your own. This sort of behavior is not
similar to the behavior of hackers or that of musicians. The appropriate
parallel of this cheating-in-school behavior to the real world of programming
and music will be:

1. Taking the source code of Emacs, replacing all mentions of Stallman and
GNU by your name, and selling it as a "hot new editor" for $100 a copy,
with a scary-looking EULA.

2. Taking a song someone else wrote, and performing it without change, but
claiming you wrote it.

This sort of cheating behaviour has nothing positive to it.
Post by Danny Lieberman
1.musicians are trained to play together in groups of 2, 3 ,5 ,7, 17 etc..
2. CS students might do a 2 or 3 man project once or twice - working
together is called "cheating".
I wish this was the case. But in fact, in many CS classes, you are forced
to work in pairs (or even more). The teachers simply find it easier to
grade less work.

Besides, when a teacher asks to work in a pair (and not a group of 10),
the exercise is designed for 2. If 10 people worked on it together, it
would simply be too small an exercise. The result is that most of the 10
would simply slack off and do absolutely nothing. I've seen this actually
happening. So, just like in a (sensible) company you can't hire 10 people
when 2 would be enough to do the job, similarly in classes, you can't
just do less work by giving the work to more people. The whole idea is
to leave enough work for you to learn.

You do have a point, though, that CS in the university does not directly
prepare you to work in large groups. But since large groups should have
managers, who fork of individual pieces of work to individuals, I don't
see the big problem. 10 people simply can't program "together" in the
same sense that 10 musicians play together, and since they eventually
end up working individually on individual pieces of the work, they better
learn how to do *that*.
Post by Danny Lieberman
1. musicians can sit in with a professional ensemble and play from the
chart in their first year
2. CS students cant even dream of working in a professional programming
team in their first tyear
It depends what you mean by "professional". If you think "professional"
means "highly-paid, high profile, well known group" than I think you are
wrong about musicians too. Will a person with 1 year experience in music
be hired for a world-class philharmonic? Or even to play for some
famous professional singer? I really doubt it. Similarly, you don't expect
first year CS student to find a job in highly-paid jobs in a well-known
company.

But if by "professional" you mean working with people who have some real-world
experience that you can learn from - well, this exists both in music and
in CS. Just like you can join a small amature or low-profile neighborhood
band, you can also join a Free Software project, or, in some cases, a small
start-up company. You won't get big bucks, but you will get excellent
experience and the chance to learn from some of the greatest programmers
out there.
--
Nadav Har'El | Tuesday, Jan 25 2005, 15 Shevat 5765
nyh-TS7m/3hpY0sOpacJJkBjfT4kX+***@public.gmane.org |-----------------------------------------
Phone +972-523-790466, ICQ 13349191 |Sorry, but my karma just ran over your
http://nadav.harel.org.il |dogma.

=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Micha Feigin
2005-01-25 01:28:06 UTC
Permalink
At Mon, 24 Jan 2005 12:59:15 +0200,
Post by Danny Lieberman
muli
Lisp is the language of Autocad - Scheme is the language of the TAU CS
dept. Acad has a bigger install base. ;-)
ok - university is about learning to learn but "interesting and
relevant" is usually a personal thing for a student.
Unfortunately - employers want people who know how to work in familiar
environments -
My interviewing experience is that most TAU new CS grads cant program to
save their life which is why I always look for someone who worked in a
real programming shop for a year or 2
There is something very wrong with the system when a CS grad needs 1-2
years of industry experience to be able to program whereas
a first year student at the Rubin Academy of music can sit in any ANY
ensemble, sight read and make music.
Read my other rant, but to summarize, there is something very wrong with the
concept of CS. What you should want is a software engineer grad (if the level
there was higher) and not a CS grad.

A lot of students enter CS to get the degree so that they can get into the
interview and possibly learn a bit of java for the CV. They are not interested
in the material so they take the easiest route and end up not knowing how to
turn on a computer.
Post by Danny Lieberman
Professional muscians practice 3-6 hours/day - how many hours a day does
a professional programmer practice?
When I hire a programmer - I expect him or her to be able to be
productive immediately just the way a contrabass player can read music
and play in a group;
I am not sure about the music degree in uni so as not to step on their toes I'll
use a different analogie. A good artist goes to art school and a good actor
goes to acting school, not to university. You go to university to be a good art
critic not an artist.

To be a good programer you should go to software engineering or to programing
schools (depending on what abilities you want). CS is supposed to be for
developing the theory and algorithms, not the code itself (neural networks,
wavelet compression techniques, not to implement a network driver for your
pocket calculator).
Post by Danny Lieberman
just like its ok for a clarinet player to spend some time learning bass
clarinet I have no problem with hiring a programmer for a Cobol slot if
she can learn Cobol over the weekend
danny
Post by Muli Ben-Yehuda
Post by Danny Lieberman
2. imho - Access Basic can be part of a 1 trimester course on
programming languages which should cover a number of modern languages -
like php, java, javascript, Lisp (not scheme)
Ok, I'll bite - why lisp and not scheme?
Post by Danny Lieberman
I believe that being exposed to a spectrum of modern widely used
programming languages is an important part of a CS education although
not an end in itself.
widely used != interesting or relevant. Would you say that VB is a
useful thing for a student to go to a university to learn?
I wholeheartedly agree that exposure to a wide variety of programming
languages is crucial, anything from shell to assembly to C to C++ to
Java to lisp to prolog. I disagree that learning a particulary tool -
especially if it's a proprietary tool! - is something that should be
done in university or high school. How is learning to use access
contributing to the student's education? what can you learn from
access that couldn't be learned from far better sources, except how to
use access?
Cheers,
Muli
--
Danny Lieberman
Visit us at http://www.software.co.il
Office + 972 8 970-1485
Cell + 972 54 447-1114
=================================================================
the word "unsubscribe" in the message body, e.g., run the command
+++++++++++++++++++++++++++++++++++++++++++
This Mail Was Scanned By Mail-seCure System
at the Tel-Aviv University CC.
=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Micha Feigin
2005-01-25 01:11:07 UTC
Permalink
At Mon, 24 Jan 2005 10:57:32 +0200,
Post by Danny Lieberman
Didi
1. FYI - Jet is totally separate from the Access developer - you can
ship and distribute a Jet runtime (which is a bunch of DLL's basically)
free of charge for any Windows o/s
2. imho - Access Basic can be part of a 1 trimester course on
programming languages which should cover a number of modern languages -
like php, java, javascript, Lisp (not scheme)
I believe that being exposed to a spectrum of modern widely used
programming languages is an important part of a CS education although
not an end in itself.
3. Having said that, I have worked in industry for a long time and I
can tell you that perhaps with the exception of Bar Ilan; most of the CS
grads I interviewed had pathetically
poor programming skills. There is a very sad tendency at the Technion
and TAU to focus on CS-theoretic curricula and not on problem-solving.
Hope you don't mind if I reply with a bit of a rant here as someone who has seen
several sides of the problem and what everyone expects (CS + math in TAU, later
a programer and now applied math)

Thats because the degree is supposed to be in CS and not in software
engineering. I feel that there is a major fault with the concept of a B.A degree
in CS. There is very sad tendency with the CS degree to try and please everyone,
giving the students some of what they think they need, some of what the
university thinks the industry wants and keeping it theoretical enough to
justify calling it computer science and not a degree in engineering. This leaves
the whole CS somewhat nowhere. The right way things should be is to have a
serious degree in software engeeniring for those who want to become programers,
which won't be grasped as a fallback for those that couldn't make it into CS.
The B.A in CS should be either canceled, leaving the relevant theoretical stuff
such as logic and graph theory in math with a few optional hands on courses, or
build it as an apllied math degree with CS orientation. CS itself should be a
M.A degree as you need quite a bit of mathematical knowledge to understand the
theoretic CS which you don't need (neither the math or most of the CS) to be a
good programer. The time spent on the theoretical stuff is better spent learning
things that are more useful to a programer such as program design and
validation. The feeling I got from the whole degree (doing it as a co-major
with math probably helped that feeling) is that we didn't get enough software
engineering tools for real work and didn't have enough math tools to understand
the CS stuff properly.

On the other hand I felt that even the courses that should be important to
programers weren't plan properly. Learning for a whole semester how not to
implement a semaphore or spend 4 weeks learning the fine intrigues of
simplifying logic tables is not the best use of the course's time. When I read
the scheme course book again (originally writen for a CS course in MIT) after I
already had some better understanding of things I found out that its supposed to
be a very interesting course about data handling and scheme is supposed to be a
theoretic tool that was writen with CS in mind. Instead the course puts too much
emphasis on scheme and not enough on data handling and computational processes.

Its quite difficult to teach programing properly as you need a lot of hands on
experience and to learn how to work in teams, and the tools you need are more in
the direction of program design and validation and less the languages
themselves. Once you understand the ideas, learning a new language takes about a
day to a week, depending on complexity. I started programing java after a couple
of hours with a reference book. I have also debugged and modified programs in
languages I have never seen before. That is something you get from understanding
how languages work and playing with a few different ones to understand how they
work and not by just learning the syntax of c++.
Post by Danny Lieberman
danny
Post by didi-Uo0HRlKCksNmR6Xm/ (Yedidyah Bar-David)
Post by Danny Lieberman
Tazahi
a. MS Access developer is free in Office
Not exactly. It is built into Office Pro, but not in all Office bundles.
Post by Danny Lieberman
b. The Academic licenses for Office are about 30% of the commercial MOLP
which is about 20% of the single unit list price - so it costs peanuts
for the Technion to develop in MS Access
I agree it should not cost much. But they might have other
considerations/needs.
Post by Danny Lieberman
c. MS Access runtime (Jet) is free for unlimited distribution
Jet, as far as I understand, isn't the "runtime" of MS Access. Actually,
there is not such a separation between Runtime and Development time, in
Access. You can't ship an executable+runtime. Jet, as far as I
understand, is the runtime of Access's Database, that is, it's the code
you need to read/write mdb files. So if the app is Access-based, you
need Access. If it's e.g. written in VB, and only needs to rw mdb files,
you can distribute it without limitations (plus Jet and VB runtime).
Post by Danny Lieberman
d. You can use PHP on a Windows server to access the MDB database by
ODBC since there is no limitation to using an MDB in a runtime server
Indeed, but that does not help you if the app is Access. If you only
need a DB, mdb might (or might not) be an acceptable choice. But he
talked about Access is a development platform.
If mdb is all you need, there are a few other small DBs. I played a bit
with SQLite and liked it. I am not sure it does everything Jet does, but
it's probably good enough for most such small projects.
Post by Danny Lieberman
Second of all, with all due respect - this sort of smacks of "i'll bite
off my nose to spite my face" (We dont use Access because ... )
MS Access is a widely used tool,and when your students go out looking
for work they'll have a much better shot at a job with Access than with
Ruby.
Think of it like this - it's a tool and engineering schools like the
Technion are supposed to teach you to find & use tools. If the best
tool for this job is a pocket knife thats the tool
I would expect a Technion grad to use.
Although I am from a CS school, which isn't exactly engineering, we do
have here some discussions about what is our mission and what we should
teach. Clearly we can't (and don't want to) teach only theoretic stuff.
But I am also not sure we should choose our languages/platforms _only_
based on popularity and on increasing the number of relevant lines in
our students' resume. If someone wants to program Access they do not
need to spend 3 whole years here (or 4 in the Technion).
Maybe Ruby isn't known enough. I am pretty sure, though, that PHP will
serve them very well when looking for jobs. It's also probably more work
than Access, so I understand Tzahi's request.
To comment on Tzahi's original questions - I have no real experience
with any of this, but I did see in the past some relevant projects based
on PHP. Search freshmeat. Examples: bforms, bif, browse_edit, dblib,
eleven, phpbuns, phpcodegenie, php_gen, phplabware, phplus, prado,
webgen, yawp. They are from my .whatsnewfm.db.hot, in alphabetical order
:-) I never used any of them.
--
Danny Lieberman
Visit us at http://www.software.co.il
Office + 972 8 970-1485
Cell + 972 54 447-1114
=================================================================
the word "unsubscribe" in the message body, e.g., run the command
+++++++++++++++++++++++++++++++++++++++++++
This Mail Was Scanned By Mail-seCure System
at the Tel-Aviv University CC.
=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Tzahi Fadida
2005-01-24 09:18:02 UTC
Permalink
-----Original Message-----
Sent: Monday, January 24, 2005 9:55 AM
To: Tzahi Fadida
Subject: Re: Looking for a viable alternative to MS access.
Tazahi
I've been following this thread and I wanted to shed a
a. MS Access developer is free in Office
Not so, (maybe on the not so legal copies) the additional costs
could run in the thousands of nis.
b. The Academic licenses for Office are about 30% of the
commercial MOLP
which is about 20% of the single unit list price - so it
costs peanuts
for the Technion to develop in MS Access
That's not the problem, we have all the MS licenses we need
at the technion, I was talking about the particular gov offices.
c. MS Access runtime (Jet) is free for unlimited distribution
yeah, but only good for 10,000 records, after that it will explode
in your face.
d. You can use PHP on a Windows server to access the MDB database by
ODBC since there is no limitation to using an MDB in a runtime server
I STRONGLY suggest to anyone who is even thinking about that, to
stop thinking about it right now. I have a lot of experience with this
at a company I worked for and when there is a lot of usage
there comes the memory leaks and the 1001 problems that follows.
It even came to situations where they needed to hier a reset guy.
Now you ask, what is a reset guy :)? Well, a reset guy sits
on a pcanywhere or what-have-you and have the expertise to reset
the servers remotely every 3 hrs because of memory leaks.
that is, until the upgraded to sparks + oracle.
Second of all, with all due respect - this sort of smacks of
"i'll bite
off my nose to spite my face" (We dont use Access because ... )
That's not the case. The reason we don't let them now use access
is that:
1) we already teach it and gives them projects seperately.
2) its too easy to just use it and not innovate, resulting in projects
which are dull and ugly. Not fitting a yearly project.

If I could have a promise that access would be installed on all gov
stations, and the technion reverse the policy that no ms access policy
on yearly
projects. I would gladly use it, at least, for the current teams. but I
really
can't.
MS Access is a widely used tool,and when your students go out looking
for work they'll have a much better shot at a job with Access
than with
Ruby.
As I said, we already taught them access in a few rehearsal lessons.
especially in the Information System field. I personally believe
that students with a technion degree don't really need to use access
because if they do they are in a lot of trouble.
Think of it like this - it's a tool and engineering schools like the
Technion are supposed to teach you to find & use tools. If the best
tool for this job is a pocket knife thats the tool
I would expect a Technion grad to use.
agree. but since its not a pocket knife project they'd better use
the cannon. As I might have implied the local legacy access system
is deficient.
;-)
danny
Post by Tzahi Fadida
...On Behalf Of Oded Arbel
Post by Tzahi Fadida
There are several free open-source projects on the web,
however from
Post by Tzahi Fadida
Post by Tzahi Fadida
the looks of it none are comparable to ms access.
<snip>
the tools Must be Free and not only Open Source.
Hebrew interface, hebrew db support.
MUST run also on a winbox.
Why the requirement to be free (as in beer) ? last time I checked,
MS-Access was not free (in either meaning) and to compete
with that an
open source product only has to give you more value for
money, not more
value for no money...
You misunderstood me, I don't intend to use ms-access
because its not
Post by Tzahi Fadida
free and because one of the new requirement we gave the
students of the
Post by Tzahi Fadida
ie faculty at the technion is that they can't use ms-access
for yearly
Post by Tzahi Fadida
projects.(or asp starting a semester or two. :) The main problem is
that the particular gov office is under funded and it
requested from us
Post by Tzahi Fadida
to do at least part of the job. If it had money, they would
have taken
Post by Tzahi Fadida
an outside contractor. There is a legacy ms-access local mdb
there that
Post by Tzahi Fadida
will have to be ported (probably using mdb-tools, but its not really
important). We also want to centrelize all the data feeds into one
system so it will require us to be able to reach they system from
all workstations, meaning more access licenses so we striked that
out right away.
If the alternatives are MS-Access or a competing open source product
then I do suggest Rekall from The Kompany which is licensed
under the
Post by Tzahi Fadida
GPL but the vendor will only supply binary packages for
MS-Windows for a
license fee (one can still download the source and build it. Linux
binaries as available for free from several sources, some
distros even
bundle them).
Rekall offers MS-Access like form design and supports scripting in
python (which is not as good as Ruby but will do ;-).
again, no money.
I know rekall but they also have legacy word, dos, windows
and there is
Post by Tzahi Fadida
little chance of convincing them to move to linux on most
workstations.
Post by Tzahi Fadida
I think you need to prioritize - which requirement is more
'available for no charge' or 'MS-Access feature
completeness'. I don't
no charge since otherwise there is no project.
think they coincide currently (at least until Kexi is stable, which
would take some time), and as a result, if the former is more
important
then I suggest you drop the other requirement and teach your
students to
program using some kind of easy scripting language. Ruby is a
good idea,
but also PHP.
I meant that I plan to use both. since we will also need some
middle tier logic and maybe some fancy gui additions.
Are there alternatives to ruby rails? btw, I don't consider
php an alternative at the same level, maybe to ruby but
not to ruby rails which is all about
"less software and convention over configuration"
i.e. they don't have to know the programming underlayers
just create xml like files and fancy htmls.
http://www.onlamp.com/pub/a/onlamp/2005/01/20/rails.html?page=1
Does anyone have experience with rails and can share?
--
Oded
::..
Excuses are the easiest things to manufacture, and the
hardest things to sell.
=================================================================
with the word "unsubscribe" in the message body, e.g., run
=================================================================
word "unsubscribe" in the message body, e.g., run the command echo
--
Danny Lieberman
Visit us at http://www.software.co.il
Office + 972 8 970-1485
Cell + 972 54 447-1114
=================================================================
with the word "unsubscribe" in the message body, e.g., run
=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Gilad Ben-Yossef
2005-01-24 09:21:37 UTC
Permalink
Post by Danny Lieberman
Tazahi
a. MS Access developer is free in Office
No, it might not cost money but it is certianly not Free. :-)
Post by Danny Lieberman
b. The Academic licenses for Office are about 30% of the commercial MOLP
which is about 20% of the single unit list price - so it costs peanuts
for the Technion to develop in MS Access
Actually, I'm pretty sure the Technion can get a completly free deal on
MS Access from icrosoft plus a fat donation if they promise to teach
Access in their courses. I hope you and everyone else understand why
this is not the issue.
Post by Danny Lieberman
c. MS Access runtime (Jet) is free for unlimited distribution
No it isn't - it costs the cost of a Window license since it cannopt be
used without it.
Post by Danny Lieberman
d. You can use PHP on a Windows server to access the MDB database by
ODBC since there is no limitation to using an MDB in a runtime server
You can use PHP on anything you want to access a MySQl, Postgress or
SQLite database just the same. In fact, SQLite actually comes built in
with PHP.
Post by Danny Lieberman
Second of all, with all due respect - this sort of smacks of "i'll bite
off my nose to spite my face" (We dont use Access because ... )
Why don't you complete the sentence?

We don't use Access because it is not Free Software and we don't like to
give someone else control over our tools of trade.
Post by Danny Lieberman
MS Access is a widely used tool,and when your students go out looking
for work they'll have a much better shot at a job with Access than with
Ruby.
If someone goes to the Technion to get a job he is a going to the wrong
place.
Post by Danny Lieberman
Think of it like this - it's a tool and engineering schools like the
Technion are supposed to teach you to find & use tools. If the best
tool for this job is a pocket knife thats the tool
I would expect a Technion grad to use.
Actually what I would expect from the Technion is to teach you how to
*think*, not use tools. And for that a closed software program simply
wouldn't do.

Gilad
--
Gilad Ben-Yossef <gilad-***@public.gmane.org>
Codefidence. A name you can trust(tm)
Web: http://codefidence.com | SIP: gilad-/***@public.gmane.org
Tel: +972.9.8650475 ext. 201 | Fax: +972.9.8850643

"I am Jack's Overwritten Stack Pointer"
-- Hackers Club, the movie

=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Micha Feigin
2005-01-24 23:48:01 UTC
Permalink
At Mon, 24 Jan 2005 09:55:13 +0200,
Post by Danny Lieberman
Tazahi
a. MS Access developer is free in Office
b. The Academic licenses for Office are about 30% of the commercial MOLP
which is about 20% of the single unit list price - so it costs peanuts
for the Technion to develop in MS Access
c. MS Access runtime (Jet) is free for unlimited distribution
d. You can use PHP on a Windows server to access the MDB database by
ODBC since there is no limitation to using an MDB in a runtime server
Second of all, with all due respect - this sort of smacks of "i'll bite
off my nose to spite my face" (We dont use Access because ... )
MS Access is a widely used tool,and when your students go out looking
for work they'll have a much better shot at a job with Access than with
Ruby.
Forgive me if I am way off course here as I have not seen what the OP wrote and
I'm not much into databases, but couldn't mysql do the job? I think that there
are access like interface. IIRC OO has a database in the non-free version.

mysqlcc allows gui interface to mysql databases.

there is mdbtools (mdbtools.sourceforge.net) that allows accessing access files, don't know how
good it is.

It seems like gnumeric can do something similar to access using the GDA plugin
or mergeant for database administration for gnome. KDE has knoda which may do
what you want.

Hope it helps.
Post by Danny Lieberman
Think of it like this - it's a tool and engineering schools like the
Technion are supposed to teach you to find & use tools. If the best
tool for this job is a pocket knife thats the tool
I would expect a Technion grad to use.
;-)
danny
Post by Tzahi Fadida
...On Behalf Of Oded Arbel
There are several free open-source projects on the web, however from
the looks of it none are comparable to ms access.
<snip>
the tools Must be Free and not only Open Source.
Hebrew interface, hebrew db support.
MUST run also on a winbox.
Why the requirement to be free (as in beer) ? last time I checked,
MS-Access was not free (in either meaning) and to compete
with that an
open source product only has to give you more value for
money, not more
value for no money...
You misunderstood me, I don't intend to use ms-access because its
not free and because one of the new requirement we gave the students
of the ie faculty at the technion is that they can't use ms-access for
yearly projects.(or asp starting a semester or two. :)
The main problem is that the particular gov office is under funded and
it requested from us to do at least part of the job.
If it had money, they would have taken an outside contractor.
There is a legacy ms-access local mdb there that will have to be
ported (probably using mdb-tools, but its not really important).
We also want to centrelize all the data feeds into one system
so it will require us to be able to reach they system from
all workstations, meaning more access licenses so we striked that
out right away.
If the alternatives are MS-Access or a competing open source product
then I do suggest Rekall from The Kompany which is licensed under the
GPL but the vendor will only supply binary packages for
MS-Windows for a
license fee (one can still download the source and build it. Linux
binaries as available for free from several sources, some
distros even
bundle them).
Rekall offers MS-Access like form design and supports scripting in
python (which is not as good as Ruby but will do ;-).
again, no money.
I know rekall but they also have legacy word, dos, windows and
there is little chance of convincing them to move to linux on most
workstations.
'available for no charge' or 'MS-Access feature
completeness'. I don't
no charge since otherwise there is no project.
think they coincide currently (at least until Kexi is stable, which
would take some time), and as a result, if the former is more
important
then I suggest you drop the other requirement and teach your
students to
program using some kind of easy scripting language. Ruby is a
good idea,
but also PHP.
I meant that I plan to use both. since we will also need some
middle tier logic and maybe some fancy gui additions.
Are there alternatives to ruby rails? btw, I don't consider
php an alternative at the same level, maybe to ruby but
not to ruby rails which is all about
"less software and convention over configuration"
i.e. they don't have to know the programming underlayers
just create xml like files and fancy htmls.
http://www.onlamp.com/pub/a/onlamp/2005/01/20/rails.html?page=1
Does anyone have experience with rails and can share?
--
Oded
::..
Excuses are the easiest things to manufacture, and the
hardest things to sell.
=================================================================
with the word "unsubscribe" in the message body, e.g., run
=================================================================
the word "unsubscribe" in the message body, e.g., run the command
--
Danny Lieberman
Visit us at http://www.software.co.il
Office + 972 8 970-1485
Cell + 972 54 447-1114
=================================================================
the word "unsubscribe" in the message body, e.g., run the command
+++++++++++++++++++++++++++++++++++++++++++
This Mail Was Scanned By Mail-seCure System
at the Tel-Aviv University CC.
=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Gilad Ben-Yossef
2005-01-24 09:39:05 UTC
Permalink
Post by Tzahi Fadida
There are several free open-source projects on the web,
however from the looks of it none are comparable to
ms access.
So the next best thing is to use some webservice combined
with some database language. I was thinking about
PHP+RUBY RAILS for the db forms + POSTGRESQL.
Any other suggestions?
Try Gambas. It's a full IDE environment (including editor, debugger,
runtime, icon editor, database connection wizard, etc) for developing in
a Object oriented BASIC environment, or in other words it's a clone of
Visual Basic without some of the more ridiculous things in VB. The site
actually lists the differences from VB and there is a VB compatibility
module (not finished yet).

It's damn impressive suite and it has build in support for MySQL,
Postgress and SQLite - the last being an in process database (no server
needed, just like MS Jet).

The GUI is qt based, so you get decent Hebrew support (it's not
perfect, but the bugs I found are very minor to the point of calling
them cosmetic)

I'm writing an Israeli financial documentation system with it right now
for kicks (because I don't want a web based one and because it's a
great excuse to experience working with Gambas) and my only complaint
thus far is that the documentation is not as 100% full as I would like
(but it exists and pops up when you hit F1)

And of course, it's GPLed. :-)

In short, check it out:

http://gambas.sourceforge.net/

Gilad
--
Gilad Ben-Yossef <gilad-***@public.gmane.org>
Codefidence. A name you can trust(tm)
Web: http://codefidence.com | SIP: gilad-/***@public.gmane.org
Tel: +972.9.8650475 ext. 201 | Fax: +972.9.8850643

"I am Jack's Overwritten Stack Pointer"
-- Hackers Club, the movie

=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Tzahi Fadida
2005-01-24 10:02:59 UTC
Permalink
10x,
However there seems to be a problem with windows:
"Windows - Gambas interpreter and compiler now compiles on CygWin but
not components. This problem is under investigation. Note that programs
without GUI can work. "

kind of defeates the point. Anyway, I can use VB itself if I wanted too
but
its again going into details that these particular students can do
without
and in fact they'd have trouble to cope with most programming languages
at this time.
The problem with this particular project is that it needs to become
viable in a semester to live so they need to concentrate on sql
queries and quick ways to retrieve them.

An idea, can I compile rekall on cygwin? and not be in violation of
its license when I'll use it in the gov offices without paying the
company?
although it won't be lean anymore. a browser can work on any gov
issued backward hardware and hence the web site solution is
more appealing and decentralized for the offices counterparts
all over the country and requires less handling (again the funding
problem).
-----Original Message-----
Sent: Monday, January 24, 2005 11:39 AM
To: Tzahi Fadida
Subject: Re: Looking for a viable alternative to MS access.
Post by Tzahi Fadida
There are several free open-source projects on the web,
however from
Post by Tzahi Fadida
the looks of it none are comparable to ms access.
So the next best thing is to use some webservice combined
with some database language. I was thinking about
PHP+RUBY RAILS for the db forms + POSTGRESQL.
Any other suggestions?
Try Gambas. It's a full IDE environment (including editor, debugger,
runtime, icon editor, database connection wizard, etc) for
developing in
a Object oriented BASIC environment, or in other words it's a
clone of
Visual Basic without some of the more ridiculous things in
VB. The site
actually lists the differences from VB and there is a VB
compatibility
module (not finished yet).
It's damn impressive suite and it has build in support for MySQL,
Postgress and SQLite - the last being an in process database
(no server
needed, just like MS Jet).
The GUI is qt based, so you get decent Hebrew support (it's not
perfect, but the bugs I found are very minor to the point of calling
them cosmetic)
I'm writing an Israeli financial documentation system with it
right now
for kicks (because I don't want a web based one and because it's a
great excuse to experience working with Gambas) and my only
complaint
thus far is that the documentation is not as 100% full as I
would like
(but it exists and pops up when you hit F1)
And of course, it's GPLed. :-)
http://gambas.sourceforge.net/
Gilad
--
Codefidence. A name you can trust(tm)
Tel: +972.9.8650475 ext. 201 | Fax: +972.9.8850643
"I am Jack's Overwritten Stack Pointer"
-- Hackers Club, the movie
=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Gilad Ben-Yossef
2005-01-24 10:11:43 UTC
Permalink
Post by Tzahi Fadida
10x,
"Windows - Gambas interpreter and compiler now compiles on CygWin but
not components. This problem is under investigation. Note that programs
without GUI can work. "
I wan't aware that Window was a requirement. My bad.
Post by Tzahi Fadida
kind of defeates the point. Anyway, I can use VB itself if I wanted too
but
its again going into details that these particular students can do
without
and in fact they'd have trouble to cope with most programming languages
at this time.
The problem with this particular project is that it needs to become
viable in a semester to live so they need to concentrate on sql
queries and quick ways to retrieve them.
An idea, can I compile rekall on cygwin? and not be in violation of
its license when I'll use it in the gov offices without paying the
company?
Frankly, I've tried Rekall and I really don't suggest you to go there.

Gilad
--
Gilad Ben-Yossef <gilad-***@public.gmane.org>
Codefidence. A name you can trust(tm)
Web: http://codefidence.com | SIP: gilad-/***@public.gmane.org
Tel: +972.9.8650475 ext. 201 | Fax: +972.9.8850643

"I am Jack's Overwritten Stack Pointer"
-- Hackers Club, the movie

=================================================================
To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Oded Arbel
2005-01-24 12:44:09 UTC
Permalink
Post by Gilad Ben-Yossef
Post by Tzahi Fadida
An idea, can I compile rekall on cygwin? and not be in violation of
its license when I'll use it in the gov offices without paying the
company?
You could - its GPLed, so you can compile it, modify it, redistribute
it, sell it for whatever value you put on it or what's not. If you want
support from The Kompany and/or pre-compiled windows distribution that
you don't have to maintain yourself - only then you'd need a license.
Post by Gilad Ben-Yossef
Frankly, I've tried Rekall and I really don't suggest you to go there.
But I think Gilad has more experience then me with that product - I only
used it as a funky database frontend for maintaining a schema that is
used in other applications.
--
Oded

::..
"It is far more impressive when others discover your good qualities
without your help."
-- Miss Manners

================================================================To unsubscribe, send mail to linux-il-request-Xh+***@public.gmane.org with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail linux-il-request-Xh+***@public.gmane.org
Loading...