Discussion:
"Simple" Languages in FreeBSD
(too old to reply)
Allen
2016-06-30 21:52:43 UTC
Permalink
Hi,

I've been using FreeBSD on and off since 4.0-CURRENT, which seems like
almost a lifetime ago now, heh. I'm currently using FreeBSD
10.0-RELEASE and even though I've gotten my latest order from the
FreeBSD Mall (Which I bought 10.3-RELEASE on DVD along with a bunch of
other stuff for myself and my Wife) I'm not ready to upgrade yet since
I've gotten my system working how I like (Got WindowMaker set up, and
FVWM2, and some other stuff set up) so I'm using it for now.

Anyway, in all these years that have passed using FreeBSD and a bunch
of Linux distros, I never had time or patience enough to learn
Programming Languages, and I'm getting more and more to the part where
I'm thinking it's a good idea more so now than before.

I have the book "Learning Perl" that I bought a while back, and I've
also downloaded a bunch of stuff for Perl, Python, Ruby, and others, so
I'm just curious on basically what Languages anyone here would
recommend.

Literally anyone who responds with an opinion, I'm interested. Being
easy to learn for someone who isn't great with Math but does understand
Unix is a plus but not a requirement. I was starting to teach myself
Ruby on a Linux box I was using for a while and Ruby did seem to be
going OK, but a lot of the FreeBSD Books I've bought recommend Perl,
and I've also had just as many reasons from people saying to try
Python, so basically any Language and what reasons would be great.

-Allen
Felix Friedlander
2016-06-30 22:00:19 UTC
Permalink
Post by Allen
Hi,
I've been using FreeBSD on and off since 4.0-CURRENT, which seems like
almost a lifetime ago now, heh. I'm currently using FreeBSD
10.0-RELEASE and even though I've gotten my latest order from the
FreeBSD Mall (Which I bought 10.3-RELEASE on DVD along with a bunch of
other stuff for myself and my Wife) I'm not ready to upgrade yet since
I've gotten my system working how I like (Got WindowMaker set up, and
FVWM2, and some other stuff set up) so I'm using it for now.
Anyway, in all these years that have passed using FreeBSD and a bunch
of Linux distros, I never had time or patience enough to learn
Programming Languages, and I'm getting more and more to the part where
I'm thinking it's a good idea more so now than before.
I have the book "Learning Perl" that I bought a while back, and I've
also downloaded a bunch of stuff for Perl, Python, Ruby, and others, so
I'm just curious on basically what Languages anyone here would
recommend.
Literally anyone who responds with an opinion, I'm interested. Being
easy to learn for someone who isn't great with Math but does understand
Unix is a plus but not a requirement. I was starting to teach myself
Ruby on a Linux box I was using for a while and Ruby did seem to be
going OK, but a lot of the FreeBSD Books I've bought recommend Perl,
and I've also had just as many reasons from people saying to try
Python, so basically any Language and what reasons would be great.
-Allen
Hi Allen,

Perl may have been the language of choice 10 or even 5 years ago, but unless you have a specific reason I would wholeheartedly recommend Python as a first language. It’s incredibly easy, very powerful, the standard library is amazing (you can implement a full SMTP server or web server in about 10 lines of Python) and it’s available on a huge number of platforms, including FreeBSD.

I find perl to be ugly, and ruby like a slightly worse, more complex Python, but that’s just my opinion, and if you learn any of these 3 languages you will not go too far wrong.

Of course, this is coming from the guy who decided to teach himself C++ as his first programming language, so make of that what you will.
--
Felix Friedlander <***@gmail.com <mailto:***@gmail.com>>
Mike Jeays
2016-07-01 00:33:30 UTC
Permalink
I completely agree with Felix Friedlander. Unless you have strong
reasons for picking Perl or Ruby (and it doesn't sound as if you do),
Python is easily the best choice these days. It is very easy to get
started and the language syntax is very clean, but it is extremely
powerful. Don't be put off by the unusual syntax of using alignment to
denote structure. It seems like a mickey mouse idea at first sight to
those who come from other languages, but it works well and leads to more
readable code. It is a strength, not a weakness.
Post by Allen
Hi,
I've been using FreeBSD on and off since 4.0-CURRENT, which seems like
almost a lifetime ago now, heh. I'm currently using FreeBSD
10.0-RELEASE and even though I've gotten my latest order from the
FreeBSD Mall (Which I bought 10.3-RELEASE on DVD along with a bunch of
other stuff for myself and my Wife) I'm not ready to upgrade yet since
I've gotten my system working how I like (Got WindowMaker set up, and
FVWM2, and some other stuff set up) so I'm using it for now.
Anyway, in all these years that have passed using FreeBSD and a bunch
of Linux distros, I never had time or patience enough to learn
Programming Languages, and I'm getting more and more to the part where
I'm thinking it's a good idea more so now than before.
I have the book "Learning Perl" that I bought a while back, and I've
also downloaded a bunch of stuff for Perl, Python, Ruby, and others, so
I'm just curious on basically what Languages anyone here would
recommend.
Literally anyone who responds with an opinion, I'm interested. Being
easy to learn for someone who isn't great with Math but does understand
Unix is a plus but not a requirement. I was starting to teach myself
Ruby on a Linux box I was using for a while and Ruby did seem to be
going OK, but a lot of the FreeBSD Books I've bought recommend Perl,
and I've also had just as many reasons from people saying to try
Python, so basically any Language and what reasons would be great.
-Allen
_______________________________________________
https://lists.freebsd.org/mailman/listinfo/freebsd-questions
Chris Hill
2016-07-01 00:34:44 UTC
Permalink
[ snip ]
Post by Felix Friedlander
Post by Allen
Anyway, in all these years that have passed using FreeBSD and a bunch
of Linux distros, I never had time or patience enough to learn
Programming Languages, and I'm getting more and more to the part where
I'm thinking it's a good idea more so now than before.
I have the book "Learning Perl" that I bought a while back, and I've
also downloaded a bunch of stuff for Perl, Python, Ruby, and others, so
I'm just curious on basically what Languages anyone here would
recommend.
Literally anyone who responds with an opinion, I'm interested. Being
easy to learn for someone who isn't great with Math but does understand
Unix is a plus but not a requirement. I was starting to teach myself
Ruby on a Linux box I was using for a while and Ruby did seem to be
going OK, but a lot of the FreeBSD Books I've bought recommend Perl,
and I've also had just as many reasons from people saying to try
Python, so basically any Language and what reasons would be great.
-Allen
Hi Allen,
Perl may have been the language of choice 10 or even 5 years ago, but
unless you have a specific reason I would wholeheartedly recommend
Python as a first language. It?s incredibly easy, very powerful, the
standard library is amazing (you can implement a full SMTP server or
web server in about 10 lines of Python) and it?s available on a huge
number of platforms, including FreeBSD.
[ snip ]

I'll second Felix's recommendation of Python. I'm only now learning it
myself, although I've been doing various kinds of programming "since
'Nam." Python feels extremely flexible and powerful, but I'm sure it
has its problems as with any other language. For a book, I've been using
'Introducing Python' by Bill Lubanovic (O'Reilly, ISBN
978-1-449-35936-2).
--
Chris Hill ***@monochrome.org
** [ Busy Expunging </> ]
Pedro A. M. Vazquez
2016-07-01 01:13:10 UTC
Permalink
Does FreeBSD needs an 'official' small language? Perl is a mature language
I use a lot, Python is very good, Lua is smaller than both and very good
too, I'm learning Lua now.

*Uma nação "que queria ser moderna" recua no tempo e se coloca ao lado de
Honduras e Paraguai como países onde "presidentes eleitos foram afastados
de forma questionável", afirmam análises sobre o impeachment de Dilma*

*na DW Brasil
<http://www.dw.com/pt/imprensa-alem%C3%A3-v%C3%AA-derrota-e-declara%C3%A7%C3%A3o-de-fal%C3%AAncia-de-um-pa%C3%ADs/a-19251950>*
Post by Chris Hill
[ snip ]
Anyway, in all these years that have passed using FreeBSD and a bunch
Post by Felix Friedlander
Post by Allen
of Linux distros, I never had time or patience enough to learn
Programming Languages, and I'm getting more and more to the part where
I'm thinking it's a good idea more so now than before.
I have the book "Learning Perl" that I bought a while back, and I've
also downloaded a bunch of stuff for Perl, Python, Ruby, and others, so
I'm just curious on basically what Languages anyone here would
recommend.
Literally anyone who responds with an opinion, I'm interested. Being
easy to learn for someone who isn't great with Math but does understand
Unix is a plus but not a requirement. I was starting to teach myself
Ruby on a Linux box I was using for a while and Ruby did seem to be
going OK, but a lot of the FreeBSD Books I've bought recommend Perl,
and I've also had just as many reasons from people saying to try
Python, so basically any Language and what reasons would be great.
-Allen
Hi Allen,
Perl may have been the language of choice 10 or even 5 years ago, but
unless you have a specific reason I would wholeheartedly recommend Python
as a first language. It?s incredibly easy, very powerful, the standard
library is amazing (you can implement a full SMTP server or web server in
about 10 lines of Python) and it?s available on a huge number of platforms,
including FreeBSD.
[ snip ]
I'll second Felix's recommendation of Python. I'm only now learning it
myself, although I've been doing various kinds of programming "since 'Nam."
Python feels extremely flexible and powerful, but I'm sure it
has its problems as with any other language. For a book, I've been using
'Introducing Python' by Bill Lubanovic (O'Reilly, ISBN 978-1-449-35936-2).
--
** [ Busy Expunging </> ]
_______________________________________________
https://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "
Jon Radel
2016-07-01 00:50:33 UTC
Permalink
Post by Mike Jeays
I completely agree with Felix Friedlander. Unless you have strong
reasons for picking Perl or Ruby (and it doesn't sound as if you do),
Python is easily the best choice these days. It is very easy to get
started and the language syntax is very clean, but it is extremely
powerful. Don't be put off by the unusual syntax of using alignment to
denote structure. It seems like a mickey mouse idea at first sight to
those who come from other languages, but it works well and leads to more
readable code. It is a strength, not a weakness.
I pretty much agree with everyone, but will throw out a few more thoughts:

1) Don't forget /bin/sh Depending on your problem domain, it really
does have its uses. And limitations if you want to do other things.
But not to be overlooked if you want to do very basic automation of
tasks on a FreeBSD machine.

2) Did I mention that there are trade offs depending on what you want
to do? There is no single perfect language for everything. IMHO. (If
somebody has the perfect language for everything, please do share.)

3) Personal preference plays a huge role.... Personally I still whip
off a perl script now and then, as I learned perl long, long ago, but I
find the bolt-on aspect of the object-oriented features make me rather
queasy, so when I to deal with something deserving of that formalism, I
tend to reach for ruby. I've never really gotten into using python, but
that's just the way things worked out for me, rather than due to any
distaste for it.

But I'll third the notion that if you're starting with no personal
baggage and want a general purpose scripting language to do a bit of
this and a bit of that, python is a great place to start. Even if ruby
is kind of cool. :-)
--
--Jon Radel
***@radel.com
Andrew Gould
2016-07-01 06:36:32 UTC
Permalink
I have made great use of very little Python for over a decade. I use it
for:
1. extracting data from text files
2. managing some SQL scripts that make use of ODBC connections
3. managing a series of ImageMagick commands.
4. detecting the external address of my internet gateway and updating my
EasyDNS account when my dynamic address changes.

All of my scripts (except the last one) run in FreeBSD and Windows without
modification.

I am but a CPA who strayed too far from the ledger. I can vouch for the
ease of learning Python.

Best of luck,

Andrew
Post by Allen
Hi,
I've been using FreeBSD on and off since 4.0-CURRENT, which seems like
almost a lifetime ago now, heh. I'm currently using FreeBSD
10.0-RELEASE and even though I've gotten my latest order from the
FreeBSD Mall (Which I bought 10.3-RELEASE on DVD along with a bunch of
other stuff for myself and my Wife) I'm not ready to upgrade yet since
I've gotten my system working how I like (Got WindowMaker set up, and
FVWM2, and some other stuff set up) so I'm using it for now.
Anyway, in all these years that have passed using FreeBSD and a bunch
of Linux distros, I never had time or patience enough to learn
Programming Languages, and I'm getting more and more to the part where
I'm thinking it's a good idea more so now than before.
I have the book "Learning Perl" that I bought a while back, and I've
also downloaded a bunch of stuff for Perl, Python, Ruby, and others, so
I'm just curious on basically what Languages anyone here would
recommend.
Literally anyone who responds with an opinion, I'm interested. Being
easy to learn for someone who isn't great with Math but does understand
Unix is a plus but not a requirement. I was starting to teach myself
Ruby on a Linux box I was using for a while and Ruby did seem to be
going OK, but a lot of the FreeBSD Books I've bought recommend Perl,
and I've also had just as many reasons from people saying to try
Python, so basically any Language and what reasons would be great.
-Allen
_______________________________________________
https://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "
Dimitri Minaev
2016-07-01 07:57:10 UTC
Permalink
Post by Allen
Literally anyone who responds with an opinion, I'm interested. Being
easy to learn for someone who isn't great with Math but does understand
Unix is a plus but not a requirement. I was starting to teach myself
Ruby on a Linux box I was using for a while and Ruby did seem to be
going OK, but a lot of the FreeBSD Books I've bought recommend Perl,
and I've also had just as many reasons from people saying to try
Python, so basically any Language and what reasons would be great.
A huge part of my job is automation in UNIX and 99% of it is done in
Bash. IMHO, shell is a must for anyone working with UNIX, even though
it's not really a programming language in the common sense. About 15
years ago I used Perl often and I remember it as a very natural language
very similar to shell, but better. The syntax may sometimes look
strange, but most of the time Perl by default does exactly what you want
it to do.

The Python is in fashion these days. They say it's easy to learn and has
a clean syntax. Perhaps, I'm getting too old to learn new languages, but
I found Python verbose and awkward. The trend introduced by the
object-oriented languages of the last decades makes the programmer use
various helpers, wrappers, proxy objects, singletons and other
doubtlessly useful but clumsy contraptions. For example, let's write a
simple script that runs a program, reads its output and feeds it to the
stdin of another program. In Perl, it's as straightforward as this:

open(P1, "ls -la |");
open(P2, "|grep ^d");
while (my $l = <P1>) {
print P2 $l;
}

Quite natural, eh? Now, Python:

import subprocess
a = subprocess.Popen(["ls", "-la"], stdout=subprocess.PIPE)
b = subprocess.Popen(["grep", "^d"], stdin=subprocess.PIPE,
stdout=subprocess.PIPE)
ls = a.communicate()[0]
r = b.communicate(input=ls)[0]
print(r.decode())

I'm sure there are other ways to do the same in a more concise way using
external Python modules like 'sh', but the idiomatic way, AFAIK, is the
one used above.

Besides, Python, however logical it is, may be unpredictable. For example:

In [1]: a=99
In [2]: b=999
In [3]: a is 99
Out[3]: True
In [4]: b is 999
Out[4]: False

I found Ruby to be more like Perl. Even though it is an object-oriented
language, it has many shortcuts that make things simpler, like using $_
variable to store the last read string. But I never liked OOP and put
Ruby away.

So, from the practical point of view I would vote for Perl. Some would
say it's too old, but hey, it's still more popular than Ruby, according
to TIOBE index: http://www.tiobe.com/tiobe_index

But the popularity shouldn't be crucial in the language choice. If
you're going to learn programming languages for fun, have a look at some
less popular alternatives. One of them is my favorite Tcl. It's a
language with very simple syntax, underestimated but powerful. Many
utilities used in other languages, were born in Tcl: Sqlite, Expect and
Tk GUI, to name a few. It's still very popular as a built-in language in
network hardware. It may lack some libraries supporting modern protocols
(AMQP, for example), but programming in Tcl just feels great.

Another interesting language is Scheme. There are many dialects of this
uncommon but beautiful language. Racket has one of the largest
libraries, but it's rather a language for students and teachers than for
the real world applications. Chicken Scheme and Guile are way more
practical and just as rich.

Other options include Erlang and Haskell. Go language is also
interesting, but it is IMHO a language for real programmers.
Priyadarshan
2016-07-01 08:10:49 UTC
Permalink
Post by Dimitri Minaev
Post by Allen
Literally anyone who responds with an opinion, I'm interested. Being
easy to learn for someone who isn't great with Math but does understand
Unix is a plus but not a requirement. I was starting to teach myself
Ruby on a Linux box I was using for a while and Ruby did seem to be
going OK, but a lot of the FreeBSD Books I've bought recommend Perl,
and I've also had just as many reasons from people saying to try
Python, so basically any Language and what reasons would be great.
A huge part of my job is automation in UNIX and 99% of it is done in
Bash. IMHO, shell is a must for anyone working with UNIX, even though
it's not really a programming language in the common sense. About 15
years ago I used Perl often and I remember it as a very natural language
very similar to shell, but better. The syntax may sometimes look
strange, but most of the time Perl by default does exactly what you want
it to do.
The Python is in fashion these days. They say it's easy to learn and has
a clean syntax. Perhaps, I'm getting too old to learn new languages, but
I found Python verbose and awkward. The trend introduced by the
object-oriented languages of the last decades makes the programmer use
various helpers, wrappers, proxy objects, singletons and other
doubtlessly useful but clumsy contraptions. For example, let's write a
simple script that runs a program, reads its output and feeds it to the
open(P1, "ls -la |");
open(P2, "|grep ^d");
while (my $l = <P1>) {
print P2 $l;
}
import subprocess
a = subprocess.Popen(["ls", "-la"], stdout=subprocess.PIPE)
b = subprocess.Popen(["grep", "^d"], stdin=subprocess.PIPE,
stdout=subprocess.PIPE)
ls = a.communicate()[0]
r = b.communicate(input=ls)[0]
print(r.decode())
I'm sure there are other ways to do the same in a more concise way using
external Python modules like 'sh', but the idiomatic way, AFAIK, is the
one used above.
Besides, Python, however logical it is, may be unpredictable. For
In [1]: a=99
In [2]: b=999
In [3]: a is 99
Out[3]: True
In [4]: b is 999
Out[4]: False
I found Ruby to be more like Perl. Even though it is an object-oriented
language, it has many shortcuts that make things simpler, like using $_
variable to store the last read string. But I never liked OOP and put
Ruby away.
So, from the practical point of view I would vote for Perl. Some would
say it's too old, but hey, it's still more popular than Ruby, according
to TIOBE index: http://www.tiobe.com/tiobe_index
But the popularity shouldn't be crucial in the language choice. If
you're going to learn programming languages for fun, have a look at some
less popular alternatives. One of them is my favorite Tcl. It's a
language with very simple syntax, underestimated but powerful. Many
utilities used in other languages, were born in Tcl: Sqlite, Expect and
Tk GUI, to name a few. It's still very popular as a built-in language in
network hardware. It may lack some libraries supporting modern protocols
(AMQP, for example), but programming in Tcl just feels great.
Another interesting language is Scheme. There are many dialects of this
uncommon but beautiful language. Racket has one of the largest
libraries, but it's rather a language for students and teachers than for
the real world applications. Chicken Scheme and Guile are way more
practical and just as rich.
Other options include Erlang and Haskell. Go language is also
interesting, but it is IMHO a language for real programmers.
Thanks for this.

Python, Ruby, Haskell, Julia, even PHP, they have all something
to offer.

One should really try to feel what is closer to one’s way of
thinking about problems, since the language can really help, or
really be a hindrance.

Our company uses mainly Common Lisp, but we are also a Perl shop.

It is interesting to see new employees using so-called «new»
languages, slowly but surely getting interested in the «old»
Perl 5 (aka Perl Raptor), and ultimately adopting it as main
language to «think» about problems.
Dimitri Minaev
2016-07-01 08:27:03 UTC
Permalink
Post by Priyadarshan
Our company uses mainly Common Lisp, but we are also a Perl shop.
Ah, I wanted to mention CL, too, but I didn't know any examples of its
use in modern practice. I love it, but it's only real application for me
is hacking my favorite window manager, Stumpwm :)

CL is wonderfully multi-faceted. Its object system is the only object
system that feels right and doesn't get in my way of thinking. Macros
can turn CL in a completely different language.

Thanks for bringing Lisp into the thread :)
Steve O'Hara-Smith
2016-07-01 08:56:52 UTC
Permalink
On Thu, 30 Jun 2016 17:52:43 -0400
Post by Allen
Anyway, in all these years that have passed using FreeBSD and a bunch
of Linux distros, I never had time or patience enough to learn
Programming Languages, and I'm getting more and more to the part where
I'm thinking it's a good idea more so now than before.
First off FreeBSD supports most programming languages from BASIC to
Prolog by way of C, Smalltalk, LISP, Haskell and Forth among many others.

Here's the thing - each of the languages I've listed is an example
of a particular programming paradigm (there are many other examples of each
paradigm). If your aim is to learn about programming in general then I
would advise learning as many different paradigms as possible. If your aim
is to do a bit of programming then pick a language - any language - and
learn to write something useful.

Python and Perl are both easy to learn OO/structured languages,
python attempts to force good style, perl is more of an anything goes
approach. Learn one and the other is easy to learn.
--
Steve O'Hara-Smith <***@sohara.org>
krad
2016-07-01 10:22:53 UTC
Permalink
Depending on the problems you are tackling it may also be worth thinking
about things at a higher level as well. eg if you are doing systems
maintenance/automation look at something like ansible. It's not programming
in an traditional sense, but it can make things a lot easier to do,
especially if you are doing things at scale. There are other config
management tools out there (chef, puppet, salt, fabric etc) but ansible is
relatively easy to setup and get going, and will utilise anything you learn
in python very well. Don't be put off by the fact you may only have a small
number of machines, it still makes life easier.
Post by Steve O'Hara-Smith
On Thu, 30 Jun 2016 17:52:43 -0400
Post by Allen
Anyway, in all these years that have passed using FreeBSD and a bunch
of Linux distros, I never had time or patience enough to learn
Programming Languages, and I'm getting more and more to the part where
I'm thinking it's a good idea more so now than before.
First off FreeBSD supports most programming languages from BASIC to
Prolog by way of C, Smalltalk, LISP, Haskell and Forth among many others.
Here's the thing - each of the languages I've listed is an example
of a particular programming paradigm (there are many other examples of each
paradigm). If your aim is to learn about programming in general then I
would advise learning as many different paradigms as possible. If your aim
is to do a bit of programming then pick a language - any language - and
learn to write something useful.
Python and Perl are both easy to learn OO/structured languages,
python attempts to force good style, perl is more of an anything goes
approach. Learn one and the other is easy to learn.
--
_______________________________________________
https://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "
Ultima
2016-07-01 11:50:18 UTC
Permalink
If perl has been decided, I suggest learning rperl instead of regular
perl. They more or less the same, except in that rperl has a stricter
syntax usage (correct me if I'm wrong, not an expert). It will compile it
into a c blob and be much faster than regular perl. One of the compile
settings was 400ish times faster? Yeah... if I were to learn perl, it would
definitely be rperl.
Post by krad
Depending on the problems you are tackling it may also be worth thinking
about things at a higher level as well. eg if you are doing systems
maintenance/automation look at something like ansible. It's not programming
in an traditional sense, but it can make things a lot easier to do,
especially if you are doing things at scale. There are other config
management tools out there (chef, puppet, salt, fabric etc) but ansible is
relatively easy to setup and get going, and will utilise anything you learn
in python very well. Don't be put off by the fact you may only have a small
number of machines, it still makes life easier.
Post by Steve O'Hara-Smith
On Thu, 30 Jun 2016 17:52:43 -0400
Post by Allen
Anyway, in all these years that have passed using FreeBSD and a bunch
of Linux distros, I never had time or patience enough to learn
Programming Languages, and I'm getting more and more to the part where
I'm thinking it's a good idea more so now than before.
First off FreeBSD supports most programming languages from BASIC
to
Post by Steve O'Hara-Smith
Prolog by way of C, Smalltalk, LISP, Haskell and Forth among many others.
Here's the thing - each of the languages I've listed is an
example
Post by Steve O'Hara-Smith
of a particular programming paradigm (there are many other examples of
each
Post by Steve O'Hara-Smith
paradigm). If your aim is to learn about programming in general then I
would advise learning as many different paradigms as possible. If your
aim
Post by Steve O'Hara-Smith
is to do a bit of programming then pick a language - any language - and
learn to write something useful.
Python and Perl are both easy to learn OO/structured languages,
python attempts to force good style, perl is more of an anything goes
approach. Learn one and the other is easy to learn.
--
_______________________________________________
https://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "
_______________________________________________
https://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "
m***@bontempi.net
2016-07-01 12:02:13 UTC
Permalink
Post by Ultima
If perl has been decided, I suggest learning rperl instead of regular
perl. They more or less the same, except in that rperl has a stricter
syntax usage (correct me if I'm wrong, not an expert). It will compile it
into a c blob and be much faster than regular perl. One of the compile
settings was 400ish times faster? Yeah... if I were to learn perl, it
would
definitely be rperl.
Post by krad
Depending on the problems you are tackling it may also be worth thinking
about things at a higher level as well. eg if you are doing systems
maintenance/automation look at something like ansible. It's not programming
in an traditional sense, but it can make things a lot easier to do,
especially if you are doing things at scale. There are other config
management tools out there (chef, puppet, salt, fabric etc) but ansible is
relatively easy to setup and get going, and will utilise anything you learn
in python very well. Don't be put off by the fact you may only have a small
number of machines, it still makes life easier.
Post by Steve O'Hara-Smith
On Thu, 30 Jun 2016 17:52:43 -0400
Post by Allen
Anyway, in all these years that have passed using FreeBSD and a bunch
of Linux distros, I never had time or patience enough to learn
Programming Languages, and I'm getting more and more to the part where
I'm thinking it's a good idea more so now than before.
First off FreeBSD supports most programming languages from BASIC
to
Post by Steve O'Hara-Smith
Prolog by way of C, Smalltalk, LISP, Haskell and Forth among many others.
Here's the thing - each of the languages I've listed is an
example
Post by Steve O'Hara-Smith
of a particular programming paradigm (there are many other examples of
each
Post by Steve O'Hara-Smith
paradigm). If your aim is to learn about programming in general then I
would advise learning as many different paradigms as possible. If your
aim
Post by Steve O'Hara-Smith
is to do a bit of programming then pick a language - any language - and
learn to write something useful.
Python and Perl are both easy to learn OO/structured languages,
python attempts to force good style, perl is more of an anything goes
approach. Learn one and the other is easy to learn.
--
Thanks for that reference.

Although rperl is a pretty young project, it is quite promising.

Some benchmarks here: http://rperl.org/performance_benchmarks.html

As far as I understand, Perl can be used with rperl, since the latter is
a string compiler of the former.

Perl is a lot of fun to learn. If one likes Perl's «weltanschauung» as
programming language, it can easily become addictive.

Priyadarshan
Priyadarshan
2016-07-01 12:03:50 UTC
Permalink
Post by Ultima
If perl has been decided, I suggest learning rperl instead of regular
perl. They more or less the same, except in that rperl has a stricter
syntax usage (correct me if I'm wrong, not an expert). It will compile it
into a c blob and be much faster than regular perl. One of the compile
settings was 400ish times faster? Yeah... if I were to learn perl, it
would
definitely be rperl.
Post by krad
Depending on the problems you are tackling it may also be worth thinking
about things at a higher level as well. eg if you are doing systems
maintenance/automation look at something like ansible. It's not programming
in an traditional sense, but it can make things a lot easier to do,
especially if you are doing things at scale. There are other config
management tools out there (chef, puppet, salt, fabric etc) but ansible is
relatively easy to setup and get going, and will utilise anything you learn
in python very well. Don't be put off by the fact you may only have a small
number of machines, it still makes life easier.
Post by Steve O'Hara-Smith
On Thu, 30 Jun 2016 17:52:43 -0400
Post by Allen
Anyway, in all these years that have passed using FreeBSD and a bunch
of Linux distros, I never had time or patience enough to learn
Programming Languages, and I'm getting more and more to the part where
I'm thinking it's a good idea more so now than before.
First off FreeBSD supports most programming languages from BASIC
to
Post by Steve O'Hara-Smith
Prolog by way of C, Smalltalk, LISP, Haskell and Forth among many others.
Here's the thing - each of the languages I've listed is an
example
Post by Steve O'Hara-Smith
of a particular programming paradigm (there are many other examples of
each
Post by Steve O'Hara-Smith
paradigm). If your aim is to learn about programming in general then I
would advise learning as many different paradigms as possible. If your
aim
Post by Steve O'Hara-Smith
is to do a bit of programming then pick a language - any language - and
learn to write something useful.
Python and Perl are both easy to learn OO/structured languages,
python attempts to force good style, perl is more of an anything goes
approach. Learn one and the other is easy to learn.
--
Thanks for that reference.

Although rperl is a pretty young project, it is quite promising.

Some benchmarks here: http://rperl.org/performance_benchmarks.html

As far as I understand, Perl can be used with rperl, since the latter is
a «strict» compiler of the former.

Perl is a lot of fun to learn. If one likes Perl's «weltanschauung» as
programming language, it can easily become addictive.

Priyadarshan
Warren Block
2016-07-01 15:07:35 UTC
Permalink
Post by Allen
Hi,
I've been using FreeBSD on and off since 4.0-CURRENT, which seems like
almost a lifetime ago now, heh. I'm currently using FreeBSD
10.0-RELEASE and even though I've gotten my latest order from the
FreeBSD Mall (Which I bought 10.3-RELEASE on DVD along with a bunch of
other stuff for myself and my Wife) I'm not ready to upgrade yet since
I've gotten my system working how I like (Got WindowMaker set up, and
FVWM2, and some other stuff set up) so I'm using it for now.
Anyway, in all these years that have passed using FreeBSD and a bunch
of Linux distros, I never had time or patience enough to learn
Programming Languages, and I'm getting more and more to the part where
I'm thinking it's a good idea more so now than before.
I have the book "Learning Perl" that I bought a while back, and I've
also downloaded a bunch of stuff for Perl, Python, Ruby, and others, so
I'm just curious on basically what Languages anyone here would
recommend.
Practically speaking, it's worth knowing the basics of all three. Perl
is a mishmash of a lot of different things, so it's not particularly
consistent. But it is very expressive.

Ruby is kind of like a nicer, cleaner Perl. They got rid of the sigils
at the start of variable names, which to me is the ugliest part of Perl.
Ruby has other interesting features, like nearly everything being an
object. However, it has seemed to stagnate a little over the last few
years.

Python is the mainstream "scripting" language of choice. It has good
features and is widely used. It leans toward the strict side of
languages ("there should be only one way to do things") and that appeals
to a lot of traditional programmers.

As a background, it is worth knowing sh. However, sh is extremely weak
compared to any of these. Doing anything nontrivial (that is, anything)
takes a lot of code. Still, a lot of constructs in other languages
descend from it or at least make a little more sense in light of it.
Brandon J. Wandersee
2016-07-01 13:48:50 UTC
Permalink
Post by Allen
I have the book "Learning Perl" that I bought a while back, and I've
also downloaded a bunch of stuff for Perl, Python, Ruby, and others, so
I'm just curious on basically what Languages anyone here would
recommend.
I'll echo what some others have said, and recommend that before you
learn any language you should learn about the fundamentals and different
paradigms of programming itself: variables, loops, branches, and all
that. Most programming language tutorials I've seen assume the reader
already has a general understanding of how to string logic together when
writing a program.

Since *nix is your platform, and you're looking for something "simple,"
I'd have to recommend starting with Bourne shell scripting.[1] Every
Unix/Linux implementation uses shell scripts for common tasks, and shell
scripting will both teach you more about how Unix-like operating systems
work, and save you from being buried in the low-level, highly
abstracted, get-your-hands-really-dirty sorts of tasks other programming
languages are suited for. The Bourne shell (/bin/sh) is found on all
*nix platforms, and anything written in good old Bourne syntax can be
interpreted by any other shell (Bash, ZSH, (T)CSH, Kourne...), so it
serves as a good starting point for learning how to write scripts for
your shell of choice, and your scripts will work anywhere a Unix shell
is available. And since many things in FreeBSD---including all the rc(8)
and periodic(8) scripts---are written in Bourne shell, learning that
will give you insight into how FreeBSD does some things under the hood,
and possibly let you change some of your system's behavior with relative
ease and without having to hack the operating system itself.

The tutorials at Codecademy can also be a fun way to learn a bit while
passing the time.[2] I'm a perpetual novice myself when it comes to
programming, so that sort of thing appeals to me.

[1]: http://www.grymoire.com/Unix/Sh.html
[2]: https://www.codecademy.com/
--
:: Brandon J. Wandersee
:: ***@gmail.com
:: --------------------------------------------------
:: 'The best design is as little design as possible.'
:: --- Dieter Rams ----------------------------------
Robert Hall
2016-07-01 16:41:58 UTC
Permalink
Post by Allen
I've been using FreeBSD on and off since 4.0-CURRENT, which seems like
almost a lifetime ago now, heh. I'm currently using FreeBSD
10.0-RELEASE and even though I've gotten my latest order from the
FreeBSD Mall (Which I bought 10.3-RELEASE on DVD along with a bunch of
other stuff for myself and my Wife) I'm not ready to upgrade yet since
I've gotten my system working how I like (Got WindowMaker set up, and
FVWM2, and some other stuff set up) so I'm using it for now.
Anyway, in all these years that have passed using FreeBSD and a bunch
of Linux distros, I never had time or patience enough to learn
Programming Languages, and I'm getting more and more to the part where
I'm thinking it's a good idea more so now than before.
Why is it a good idea now? If you just want to automate things on a
few computers, sh will run on any *nix box without installing
additional software. If you want to create GUIs in X, you'll need
something more complicated.

Pick something that you're likely to use a lot. Any language that you
know well will be more powerful than a language you don't know well.
Allen
2016-07-01 18:22:50 UTC
Permalink
On Fri, 1 Jul 2016 12:41:58 -0400
Post by Robert Hall
Post by Allen
I've been using FreeBSD on and off since 4.0-CURRENT, which seems
like almost a lifetime ago now, heh. I'm currently using FreeBSD
10.0-RELEASE and even though I've gotten my latest order from the
FreeBSD Mall (Which I bought 10.3-RELEASE on DVD along with a bunch
of other stuff for myself and my Wife) I'm not ready to upgrade yet
since I've gotten my system working how I like (Got WindowMaker set
up, and FVWM2, and some other stuff set up) so I'm using it for now.
Anyway, in all these years that have passed using FreeBSD and a
bunch of Linux distros, I never had time or patience enough to learn
Programming Languages, and I'm getting more and more to the part
where I'm thinking it's a good idea more so now than before.
Why is it a good idea now? If you just want to automate things on a
few computers, sh will run on any *nix box without installing
additional software. If you want to create GUIs in X, you'll need
something more complicated.
Before I respond too much, I wanted to say thanks to everyone that took
the time to reply, again, thank you. Any input is appreciated.

OK, the reason I'm thinking now is a better time, quite simply, I'm 33
years old now, and I've wanted to learn Coding in some way for a very
long time, and before recently, I really Honestly think that a part of
the reason I never learned, is that all through school, I always did
terrible in Math. I mean REALLY bad. I failed Math all the time and I
made the mistake of falling into thinking that "Well some people
aren't good at Math, and I'm one of them, and so I suck at Math" and
so on. The mistake being that I Believed that after a while, fully
ignoring the fact that I never stuck with anything long enough to
really learn it.

I bought myself "Teach yourself C++ in 24 hours" and at the
recommendation of a friend, bought myself "Teach yourself Visual Basic
in 24 Hours" and later on in life, after getting into Linux, BSD, and
Unix in general, I wanted to learn C, and bought myself a C book, and
then Perl, and as I mentioned I downloaded a bunch of different Books
about everything from Unix books, BSD Books, Linux Books, Unix
Security which I'm very much into, and basically anything to do with
Unix or BSD in general I grabbed it.

My problem seemed to be that when I'd get lost in a Coding Book, I'd
eventually give up. That, looking back, was a major mistake. I did
eventually go to College after getting a GED (Got kicked out of High
school for poor grades right after 10th Grade and so I had to go to an
Adult Learning Center, and I tested out of everything eventually) when
I started College I knew I wanted to do something in Computer Science,
and the two classes I took that I did the best in were Operating
Systems, and Security + (The Security + Class was a course designed to
help you take that Certification and so on) and I also took a C++
Class thinking that maybe if I had an instructor that could help
answer my questions I'd do better.

I eventually had to drop that course, and, I gave up again. So I've
got hundreds of books on everything you could imagine, and my goal is
one day to be able to work on BSD. I'm good with Security and I've
always been interested in how that works, and I even wrote the
Password Policy that's in use at my old College. It was a Mid Term
Paper I did and the Systems Admin happened to be in my class.

The Operating Systems Course was my other area of Enjoyment, and I've
always liked messing with Operating Systems, I collect them as well
and I've installed and ran everything from PC-DOS (Mind you, I didn't
even have a Computer until September of 1999, and I know that because
of an account I made online WAYYY back in the first week of getting my
first PC) and I even used BeOS heh. Which I did love by the way ;) )

Sorry about the length of this but I'm trying to make sure I give
enough info as to how and why I asked my question and what's lead up
to it.

I'm thinking Shell Scripting may be a good place to start as you said,
and you're right, I do NOT have the whole string of Logic thing down
really. And you're also right in saying that every book or text on
Coding seems to assume you already know this.

One of the reasons I had thought about Perl, Python, and Ruby, for
Perl, I wanted to learn that because I'd read that it was easier to
start with, but mainly, I have a book called "FreeBSD Unleashed, 2nd
Editon" and in that book, which is terrific by the way, it has a
chapter for Shell Scripting, and then, theres a Chapter dedicated to
Perl.

That book said that if you want to really get into FreeBSD that you
should have at the very least, a basic understanding of Perl Scripting
because it says some of the FreeBSD Configuration stuff was actually
Perl. Mind you this book covers 4.0 and 5.0, but again, if FreeBSD
uses Perl for anything, then I'd like to at least learn enough Perl
that I could be a FreeBSD System Admin.

My Goals as far as Coding / Programming goes, personally one day I'd
like to eventually be able to to Kernel Programming, or at least know
how to. Which I think is possible, but will take a long time and hard
work, and I'm OK with that, because it's something I really want.

From what I've seen so far, Shell Scripting is the first step, and
would teach me Logic Stringing and so on, and of course, that book
"FreeBSD Unleashed 2nd Edition" does say that for Shell Scripting,
it's a good starting point because I'd be using Commands that I'm
already familiar with, so it's not as big of a learning Curve. So I
have thought about that as well.

I really like Zsh. I have that installed on every machine I use. I
started out like most people do, with Bash on Linux, and Csh / TCsh on
BSD, and from what I've read, Csh based Shells are not ideal for
Scripting, and that Bourne based Shells are the way to go for that.
Post by Robert Hall
Pick something that you're likely to use a lot. Any language that you
know well will be more powerful than a language you don't know well.
For that, I know that Shell Scripting would serve purposes in that
respect no matter which Unix based OS I use, and Perl works on
everything as well. I've been told by a lot of people to go for Perl,
and the same number have said to use Python, and myself, I liked what I
was able to learn in Ruby, in the amount of time. I was reading a book
about Ruby, and it started out by telling me to load IRB, and that way
I could type things and make things happen as I went along, which is
good because I was at least understanding what was going on.

Eventually I want to learn C, and some day, if possible, I'd like to
learn Assembler just to get an idea of how the differences between
i386, i486, i586, i686, and MIPS, and basically learn the ins and outs
of old Sun hardware and Apple Hardware and SGI stuff. But really the
main goal I'd like to get to, is knowing C, but I've also learned that
before I learn C, I need to learn something simpler in terms of how it
works, like Perl, Python, Ruby, Shell Scripting, and so on, and once
I've gotten decent at one or two of those, I figured that would teach
me the Logical parts required for higher end things like C. I have read
a lot about Perl, and Ruby, and Python, and so I do know that any of
those three would be usable for more than just simple little Scripts,
and once I've learned maybe two of those, I figure it'll make learning
C easier.

Sorry again for the length of this, it's not meant to irritate anyone,
but I thought the question as to why now all of a sudden did I want to
start learning this stuff was a valid question, and without going into
a bit of History I didn't know of any other way to answer that
question, so again, sorry about the length and chunk of my life story I
typed out, but I thought if I gave some history it would make the
reasons a bit more clear.

Thank you everyone who replied, I value the opinions,

-Allen
Allen
2016-07-01 18:35:53 UTC
Permalink
On Fri, 01 Jul 2016 08:48:50 -0500
Brandon J. Wandersee <***@gmail.com> wrote:
<*SNIP*>
Post by Brandon J. Wandersee
I'll echo what some others have said, and recommend that before you
learn any language you should learn about the fundamentals and
different paradigms of programming itself: variables, loops,
branches, and all that. Most programming language tutorials I've seen
assume the reader already has a general understanding of how to
string logic together when writing a program.
Given the length of my last Mail, I've snipped my portion out to keep
this a little smaller for everyone reading it :)

I agree with you; Every book or how to that I seem to see, assumes from
the get go that you already have an understanding of this, and I don't
really.
Post by Brandon J. Wandersee
Since *nix is your platform, and you're looking for something
"simple," I'd have to recommend starting with Bourne shell
scripting.[1] Every Unix/Linux implementation uses shell scripts for
common tasks, and shell scripting will both teach you more about how
Unix-like operating systems work, and save you from being buried in
the low-level, highly abstracted, get-your-hands-really-dirty sorts
of tasks other programming languages are suited for. The Bourne shell
(/bin/sh) is found on all *nix platforms, and anything written in
good old Bourne syntax can be interpreted by any other shell (Bash,
ZSH, (T)CSH, Kourne...), so it serves as a good starting point for
learning how to write scripts for your shell of choice, and your
scripts will work anywhere a Unix shell is available. And since many
things in FreeBSD---including all the rc(8) and periodic(8)
scripts---are written in Bourne shell, learning that will give you
insight into how FreeBSD does some things under the hood, and
possibly let you change some of your system's behavior with relative
ease and without having to hack the operating system itself.
OK, this is what I'm aiming for as one of my short term Goals. I want
to be able to customize System Start Up and all that, but also be able
to write things I can use as well, and that seems like it's exactly
what I should do.

Although I do eventually want to be able to Hack on the Kernel, that's
going to take me some time. It's one of my Long Term Goals. It's one of
the reasons that I asked my question here, because BSD is one of my
main OSs of Choice. I've supported it in every way I have been able to
for a long time (I still have the box and book and CDs that my FreeBSD
PowerPak came in which came with FreeBSD 4.0-RELEASE, heh, and I have
purchased just about everything from the FreeBSD Mall, and helped
whenever I could with Money, but to be able to help with Code, would be
nice).

By the way, slightly OT; If anyone reading this is new to FreeBSD, or
Unix in general, the books and Magazines available on the FreeBSD Mall
are WONDERFUL! I've got like 5 Pairs of the BSD Boxers, Hundreds of
Stickers, Bumper Stickers, the CD-Case, every Book sold there, and a
bunch of the Tee Shirts and I did have a FreeBSD Hoodie but a guy I
used to be friends with stole that, so I'll have to buy another since
the quality and overall feel of those is great. /*End Shameless Plug
for the FreeBSD Mall, which also sells things for Patrick Volkerding at
the Slackware Store*/
Post by Brandon J. Wandersee
The tutorials at Codecademy can also be a fun way to learn a bit while
passing the time.[2] I'm a perpetual novice myself when it comes to
programming, so that sort of thing appeals to me.
[1]: http://www.grymoire.com/Unix/Sh.html
[2]: https://www.codecademy.com/
Thank you :) I'll look into these as well. I think I should have
renamed the thread a little, because "Simple" Was probably not the best
word to use for this, but again, thanks for replying.

-Allen
Allen
2016-07-01 18:49:42 UTC
Permalink
On Fri, 1 Jul 2016 07:50:18 -0400
Post by Ultima
If perl has been decided, I suggest learning rperl instead of regular
perl. They more or less the same, except in that rperl has a stricter
syntax usage (correct me if I'm wrong, not an expert). It will
compile it into a c blob and be much faster than regular perl. One of
the compile settings was 400ish times faster? Yeah... if I were to
learn perl, it would definitely be rperl.
Honestly I've never even heard of RPerl. I'll look into that for sure.
Thank you for the reply, and Honestly I'd never heard of it. I do have
the Learning Perl Book, and I've also got a bunch of Books I've
downloaded for Perl, and I have a decent amount of books on each of the
three (Python, Perl, Ruby) so I could do that. But I'm going to look
into RPerl, as that sounds very interesting to say the least. Thanks
again!
Post by Ultima
Post by krad
Depending on the problems you are tackling it may also be worth
thinking about things at a higher level as well. eg if you are
doing systems maintenance/automation look at something like
ansible. It's not programming in an traditional sense, but it can
make things a lot easier to do, especially if you are doing things
at scale. There are other config management tools out there (chef,
puppet, salt, fabric etc) but ansible is relatively easy to setup
and get going, and will utilise anything you learn in python very
well. Don't be put off by the fact you may only have a small number
of machines, it still makes life easier.
Yea I'm not in charge of any machines other than the ones I have in my
home, and I used to have 11 Computers I used for various tasks, like
one machine was a Linux box that I used mainly for making Music with
LMMS, and I do enjoy making Music; I play Instruments, and I also use
Computers to make music as well. Most of it ends up being Industrial
sounding, and I've gotten a lot of compliments for how I use Samples
and things from other people. I also make Punk, and some weird mixes of
Rock-A-Billy / Psychobilly, and Metal, and then I've also made some
weird stuff that sounds sort of like "Heavy techno" lol. Then I have
the very first Computer I ever bought, which is still kicking lol. I
use that as my FTP Server so that my Wife and I can back up stuff to
one machine, and then from there, back up to USB Drives and CDs and so
on. I do a lot of back ups because I've destroyed my file systems a few
times, unlinked a File System or two, and even had physical damage to
machines, so I try to stay up on back ups and things.

Thanks again everyone, I really appreciate any opinions, and I'm
looking into a lot of stuff now. I really was surprised about RPerl,
I'd never heard of that before, and so it's nice to see something new
from a question.

Thanks very much everyone,

-Allen
Karl Young
2016-07-01 18:57:19 UTC
Permalink
Post by Allen
On Fri, 1 Jul 2016 12:41:58 -0400
<snip>
Post by Allen
Eventually I want to learn C,
I'm going to be the contrarian here. If you want to learn C, start with
C, (C, *not* C++), just start with something simple, and keep building
on it.

Any book that say you can learn a programming language in 24 hours (or
21 days: <http://abstrusegoose.com/249>), is probably not going to be
helpful. If you already have hundreds of books, you probably have a
copy of "The C Programmiing Language by Kernighan and Ritchie
(The White Book)".

Take as long as it takes to do all the exercises in the book. When you
get stuck, get help, and stick with it.

One Day at a Time.

Good Luck

-karl
Post by Allen
and some day, if possible, I'd like to
learn Assembler just to get an idea of how the differences between
i386, i486, i586, i686, and MIPS, and basically learn the ins and outs
of old Sun hardware and Apple Hardware and SGI stuff. But really the
main goal I'd like to get to, is knowing C, but I've also learned that
before I learn C, I need to learn something simpler in terms of how it
works, like Perl, Python, Ruby, Shell Scripting, and so on, and once
I've gotten decent at one or two of those, I figured that would teach
me the Logical parts required for higher end things like C. I have read
a lot about Perl, and Ruby, and Python, and so I do know that any of
those three would be usable for more than just simple little Scripts,
and once I've learned maybe two of those, I figure it'll make learning
C easier.
Sorry again for the length of this, it's not meant to irritate anyone,
but I thought the question as to why now all of a sudden did I want to
start learning this stuff was a valid question, and without going into
a bit of History I didn't know of any other way to answer that
question, so again, sorry about the length and chunk of my life story I
typed out, but I thought if I gave some history it would make the
reasons a bit more clear.
Thank you everyone who replied, I value the opinions,
-Allen
_______________________________________________
https://lists.freebsd.org/mailman/listinfo/freebsd-questions
Mehmet Erol Sanliturk
2016-07-01 19:26:48 UTC
Permalink
Post by Allen
On Fri, 1 Jul 2016 12:41:58 -0400
Post by Robert Hall
Post by Allen
I've been using FreeBSD on and off since 4.0-CURRENT, which seems
like almost a lifetime ago now, heh. I'm currently using FreeBSD
10.0-RELEASE and even though I've gotten my latest order from the
FreeBSD Mall (Which I bought 10.3-RELEASE on DVD along with a bunch
of other stuff for myself and my Wife) I'm not ready to upgrade yet
since I've gotten my system working how I like (Got WindowMaker set
up, and FVWM2, and some other stuff set up) so I'm using it for now.
Anyway, in all these years that have passed using FreeBSD and a
bunch of Linux distros, I never had time or patience enough to learn
Programming Languages, and I'm getting more and more to the part
where I'm thinking it's a good idea more so now than before.
Why is it a good idea now? If you just want to automate things on a
few computers, sh will run on any *nix box without installing
additional software. If you want to create GUIs in X, you'll need
something more complicated.
Before I respond too much, I wanted to say thanks to everyone that took
the time to reply, again, thank you. Any input is appreciated.
OK, the reason I'm thinking now is a better time, quite simply, I'm 33
years old now, and I've wanted to learn Coding in some way for a very
long time, and before recently, I really Honestly think that a part of
the reason I never learned, is that all through school, I always did
terrible in Math. I mean REALLY bad. I failed Math all the time and I
made the mistake of falling into thinking that "Well some people
aren't good at Math, and I'm one of them, and so I suck at Math" and
so on. The mistake being that I Believed that after a while, fully
ignoring the fact that I never stuck with anything long enough to
really learn it.
I read all of the messages in that thread up to now . All of the messages
were very helpful . At the beginning , I could not understand your question
very well because of lack of sufficient information for me . Now , I think
, everything is clear .


Please do not consider my opinion against your thoughts or in any way to
blame your approach . I am just trying to mention other possible points .


My profession at the beginning was "Elementary School Teacher" , and then
become an Instructor about Computer Programming in a University . My
University graduate subject was Mathematics , and then Computer Sciences .


Let's start from Mathematics . If you are able to learn a second language ,
you are able to learn Mathematics because "Mathematics is language of
Sciences" . Assume your mother language is English , and you are learning
French . Mathematics learning is very similar to this process with a
different language like German . The method is that Mathematics should be
thought and learned like "Second Language Teaching or Learning" . When this
method is not followed , teaching and learning Mathematics is very
difficult , otherwise very easy with sufficient study .
Post by Allen
I bought myself "Teach yourself C++ in 24 hours" and at the
recommendation of a friend, bought myself "Teach yourself Visual Basic
in 24 Hours" and later on in life, after getting into Linux, BSD, and
Unix in general, I wanted to learn C, and bought myself a C book, and
then Perl, and as I mentioned I downloaded a bunch of different Books
about everything from Unix books, BSD Books, Linux Books, Unix
Security which I'm very much into, and basically anything to do with
Unix or BSD in general I grabbed it.
My problem seemed to be that when I'd get lost in a Coding Book, I'd
eventually give up. That, looking back, was a major mistake. I did
eventually go to College after getting a GED (Got kicked out of High
school for poor grades right after 10th Grade and so I had to go to an
Adult Learning Center, and I tested out of everything eventually) when
I started College I knew I wanted to do something in Computer Science,
and the two classes I took that I did the best in were Operating
Systems, and Security + (The Security + Class was a course designed to
help you take that Certification and so on) and I also took a C++
Class thinking that maybe if I had an instructor that could help
answer my questions I'd do better.
Here the problem is that learning a programming language requires a
sufficiently long amount of time . In a University , in a Programming
Language course , additional to course lecture hours , it is necessary to
work at least fifteen more hours as external study with program writing
exercises .
Without writing programs about problems ( carefully designed for the course
) it is not possible to learn any programming language in sufficient
expertise to use it . This will teach how to use the programming language .
Then , it is necessary to learn theoretical subjects where the programming
language will be used . For example , if you want to write data processing
programs
, it is necessary to learn data structures , file structures , etc.


With the above explanations , I can say that I hate books such as "Learning
... in a few Hours or Days ".
There is no such a possibility .
Post by Allen
I eventually had to drop that course, and, I gave up again. So I've
got hundreds of books on everything you could imagine, and my goal is
one day to be able to work on BSD. I'm good with Security and I've
always been interested in how that works, and I even wrote the
Password Policy that's in use at my old College. It was a Mid Term
Paper I did and the Systems Admin happened to be in my class.
The Operating Systems Course was my other area of Enjoyment, and I've
always liked messing with Operating Systems, I collect them as well
and I've installed and ran everything from PC-DOS (Mind you, I didn't
even have a Computer until September of 1999, and I know that because
of an account I made online WAYYY back in the first week of getting my
first PC) and I even used BeOS heh. Which I did love by the way ;) )
Sorry about the length of this but I'm trying to make sure I give
enough info as to how and why I asked my question and what's lead up
to it.
I'm thinking Shell Scripting may be a good place to start as you said,
and you're right, I do NOT have the whole string of Logic thing down
really. And you're also right in saying that every book or text on
Coding seems to assume you already know this.
One of the reasons I had thought about Perl, Python, and Ruby, for
Perl, I wanted to learn that because I'd read that it was easier to
start with, but mainly, I have a book called "FreeBSD Unleashed, 2nd
Editon" and in that book, which is terrific by the way, it has a
chapter for Shell Scripting, and then, theres a Chapter dedicated to
Perl.
That book said that if you want to really get into FreeBSD that you
should have at the very least, a basic understanding of Perl Scripting
because it says some of the FreeBSD Configuration stuff was actually
Perl. Mind you this book covers 4.0 and 5.0, but again, if FreeBSD
uses Perl for anything, then I'd like to at least learn enough Perl
that I could be a FreeBSD System Admin.
My Goals as far as Coding / Programming goes, personally one day I'd
like to eventually be able to to Kernel Programming, or at least know
how to. Which I think is possible, but will take a long time and hard
work, and I'm OK with that, because it's something I really want.
From what I've seen so far, Shell Scripting is the first step, and
would teach me Logic Stringing and so on, and of course, that book
"FreeBSD Unleashed 2nd Edition" does say that for Shell Scripting,
it's a good starting point because I'd be using Commands that I'm
already familiar with, so it's not as big of a learning Curve. So I
have thought about that as well.
I really like Zsh. I have that installed on every machine I use. I
started out like most people do, with Bash on Linux, and Csh / TCsh on
BSD, and from what I've read, Csh based Shells are not ideal for
Scripting, and that Bourne based Shells are the way to go for that.
Post by Robert Hall
Pick something that you're likely to use a lot. Any language that you
know well will be more powerful than a language you don't know well.
For that, I know that Shell Scripting would serve purposes in that
respect no matter which Unix based OS I use, and Perl works on
everything as well. I've been told by a lot of people to go for Perl,
and the same number have said to use Python, and myself, I liked what I
was able to learn in Ruby, in the amount of time. I was reading a book
about Ruby, and it started out by telling me to load IRB, and that way
I could type things and make things happen as I went along, which is
good because I was at least understanding what was going on.
Eventually I want to learn C, and some day, if possible, I'd like to
learn Assembler just to get an idea of how the differences between
i386, i486, i586, i686, and MIPS, and basically learn the ins and outs
of old Sun hardware and Apple Hardware and SGI stuff. But really the
main goal I'd like to get to, is knowing C, but I've also learned that
before I learn C, I need to learn something simpler in terms of how it
works, like Perl, Python, Ruby, Shell Scripting, and so on, and once
I've gotten decent at one or two of those, I figured that would teach
me the Logical parts required for higher end things like C. I have read
a lot about Perl, and Ruby, and Python, and so I do know that any of
those three would be usable for more than just simple little Scripts,
and once I've learned maybe two of those, I figure it'll make learning
C easier.
Sorry again for the length of this, it's not meant to irritate anyone,
but I thought the question as to why now all of a sudden did I want to
start learning this stuff was a valid question, and without going into
a bit of History I didn't know of any other way to answer that
question, so again, sorry about the length and chunk of my life story I
typed out, but I thought if I gave some history it would make the
reasons a bit more clear.
Thank you everyone who replied, I value the opinions,
-Allen
_______________________________________________
From your last explanations , my understanding is that , your PRIMARY goal
is to use FreeBSD in a professional way .


My opinion is that you can learn a shell language by yourself by using
books . This will allow you to use operating system facilities easily
especially by using scripts .


After that , please select your main application area such as data
processing , numerical analysis , statistical analysis , data base
applications , graphics , text processing , etc .


This selection will be useful for selecting the programming language to use
. For example , if your main goal is to analyze data statistically , choice
of R programming language will be more appropriate . If you want to perform
data base application a language suitable may be SQL .
For text processing Perl will be more suitable .


If my understanding is correct , and your desire to learning C , you may
follow a serious course about C programming language .

Some universities are allowing "Special Student" application for University
graduates . Such facilities may be used . Or , some Universities have
online courses open to public . You may follow such courses .



Another important point is the following :


If two programming languages are "Turing Complete" and "Resource Complete"
, these two languages are theoretically equivalent . Differences are in
only how they are used .


Therefore , important point is to select the programming language as
suitable your tasks to be programmed .


You are young and I think your future will be good if you do not lose your
interest and consistently you try to achieve your goals .


With my best wishes ,


Mehmet Erol Sanliturk
Garance A Drosehn
2016-07-01 19:29:20 UTC
Permalink
Post by Allen
Before I respond too much, I wanted to say thanks to everyone that took
the time to reply, again, thank you. Any input is appreciated.
OK, the reason I'm thinking now is a better time, quite simply, I'm 33
years old now, and I've wanted to learn Coding in some way for a very
long time, and before recently, I really Honestly think that a part of
the reason I never learned, is that all through school, I always did
terrible in Math.
I've programmed in many languages over the years. I think any one of
Perl, Python or Ruby would be fine. The main issue would be your
introduction to whatever language you pick.

In the case of Ruby, this book might be of interest:

https://pragprog.com/book/ltp2/learn-to-program

I'm sure there are similarly good introduction books which are based
on the other two languages. I work more with Ruby (and Crystal) than
the other two, so I tend to know more about Ruby-related options.

Another nice thing is to get used to typing in short code snippets
to figure out some detail in the language. In the case of ruby,
you'd use the unix command 'irb' (for "interactive Ruby"), and then
you can just type in a few lines of ruby to see what the language
does with them. With python you can do almost the same thing by simply
typing 'python' without any input files, and then typing in commands.
(and I expect there are better options that than). AFAIK, perl does
not come with one of these interactive coding tools, but certainly
they're easy enough to come across, such as this one:

http://www.sukria.net/perlconsole.html

The generic term for these convenient interactive interfaces is a
"REPL", which stays for "Read-Execute-Print-Loop". They can be
very helpful when learning a new language.

Personally I'm also interested in the new language of Swift, but
Swift is still evolving pretty rapidly, so it's probably not a good
language to jump into right now. (or at least, not if you're learning
to program on FreeBSD. Swift and Swift "playgrounds" would be much
more interesting if you were learning to program on macOS!).

Others have mentioned 'sh' and 'bash', and certainly I do a lot with
both of those. If you do want to write scripts in these shells, you
might get some benefit out of:

https://www.shellcheck.net

This is not a full-fledged REPL, because it doesn't execute any of
your shell code. But it does analyze the code to look for comment
causes of errors. You can also install the shellcheck command on
your own computer if you don't want to go to the web site.

It looks like there are web-based REPL's for several languages available
at:

https://repl.it/languages

but I just came across that while googling right now, and have never
used any of the REPL's which are there.
--
Garance Alistair Drosehn = ***@rpi.edu
Senior Systems Programmer or ***@FreeBSD.org
Rensselaer Polytechnic Institute; Troy, NY; USA
al plant
2016-07-01 20:05:34 UTC
Permalink
Post by Allen
On Fri, 1 Jul 2016 12:41:58 -0400
Post by Robert Hall
Post by Allen
I've been using FreeBSD on and off since 4.0-CURRENT, which seems
like almost a lifetime ago now, heh. I'm currently using FreeBSD
10.0-RELEASE and even though I've gotten my latest order from the
FreeBSD Mall (Which I bought 10.3-RELEASE on DVD along with a bunch
of other stuff for myself and my Wife) I'm not ready to upgrade yet
since I've gotten my system working how I like (Got WindowMaker set
up, and FVWM2, and some other stuff set up) so I'm using it for now.
Anyway, in all these years that have passed using FreeBSD and a
bunch of Linux distros, I never had time or patience enough to learn
Programming Languages, and I'm getting more and more to the part
where I'm thinking it's a good idea more so now than before.
Why is it a good idea now? If you just want to automate things on a
few computers, sh will run on any *nix box without installing
additional software. If you want to create GUIs in X, you'll need
something more complicated.
Before I respond too much, I wanted to say thanks to everyone that took
the time to reply, again, thank you. Any input is appreciated.
OK, the reason I'm thinking now is a better time, quite simply, I'm 33
years old now, and I've wanted to learn Coding in some way for a very
long time, and before recently, I really Honestly think that a part of
the reason I never learned, is that all through school, I always did
terrible in Math. I mean REALLY bad. I failed Math all the time and I
made the mistake of falling into thinking that "Well some people
aren't good at Math, and I'm one of them, and so I suck at Math" and
so on. The mistake being that I Believed that after a while, fully
ignoring the fact that I never stuck with anything long enough to
really learn it.
I bought myself "Teach yourself C++ in 24 hours" and at the
recommendation of a friend, bought myself "Teach yourself Visual Basic
in 24 Hours" and later on in life, after getting into Linux, BSD, and
Unix in general, I wanted to learn C, and bought myself a C book, and
then Perl, and as I mentioned I downloaded a bunch of different Books
about everything from Unix books, BSD Books, Linux Books, Unix
Security which I'm very much into, and basically anything to do with
Unix or BSD in general I grabbed it.
My problem seemed to be that when I'd get lost in a Coding Book, I'd
eventually give up. That, looking back, was a major mistake. I did
eventually go to College after getting a GED (Got kicked out of High
school for poor grades right after 10th Grade and so I had to go to an
Adult Learning Center, and I tested out of everything eventually) when
I started College I knew I wanted to do something in Computer Science,
and the two classes I took that I did the best in were Operating
Systems, and Security + (The Security + Class was a course designed to
help you take that Certification and so on) and I also took a C++
Class thinking that maybe if I had an instructor that could help
answer my questions I'd do better.
I eventually had to drop that course, and, I gave up again. So I've
got hundreds of books on everything you could imagine, and my goal is
one day to be able to work on BSD. I'm good with Security and I've
always been interested in how that works, and I even wrote the
Password Policy that's in use at my old College. It was a Mid Term
Paper I did and the Systems Admin happened to be in my class.
The Operating Systems Course was my other area of Enjoyment, and I've
always liked messing with Operating Systems, I collect them as well
and I've installed and ran everything from PC-DOS (Mind you, I didn't
even have a Computer until September of 1999, and I know that because
of an account I made online WAYYY back in the first week of getting my
first PC) and I even used BeOS heh. Which I did love by the way ;) )
Sorry about the length of this but I'm trying to make sure I give
enough info as to how and why I asked my question and what's lead up
to it.
I'm thinking Shell Scripting may be a good place to start as you said,
and you're right, I do NOT have the whole string of Logic thing down
really. And you're also right in saying that every book or text on
Coding seems to assume you already know this.
One of the reasons I had thought about Perl, Python, and Ruby, for
Perl, I wanted to learn that because I'd read that it was easier to
start with, but mainly, I have a book called "FreeBSD Unleashed, 2nd
Editon" and in that book, which is terrific by the way, it has a
chapter for Shell Scripting, and then, theres a Chapter dedicated to
Perl.
That book said that if you want to really get into FreeBSD that you
should have at the very least, a basic understanding of Perl Scripting
because it says some of the FreeBSD Configuration stuff was actually
Perl. Mind you this book covers 4.0 and 5.0, but again, if FreeBSD
uses Perl for anything, then I'd like to at least learn enough Perl
that I could be a FreeBSD System Admin.
My Goals as far as Coding / Programming goes, personally one day I'd
like to eventually be able to to Kernel Programming, or at least know
how to. Which I think is possible, but will take a long time and hard
work, and I'm OK with that, because it's something I really want.
Post by Robert Hall
From what I've seen so far, Shell Scripting is the first step, and
would teach me Logic Stringing and so on, and of course, that book
"FreeBSD Unleashed 2nd Edition" does say that for Shell Scripting,
it's a good starting point because I'd be using Commands that I'm
already familiar with, so it's not as big of a learning Curve. So I
have thought about that as well.
I really like Zsh. I have that installed on every machine I use. I
started out like most people do, with Bash on Linux, and Csh / TCsh on
BSD, and from what I've read, Csh based Shells are not ideal for
Scripting, and that Bourne based Shells are the way to go for that.
Post by Robert Hall
Pick something that you're likely to use a lot. Any language that you
know well will be more powerful than a language you don't know well.
For that, I know that Shell Scripting would serve purposes in that
respect no matter which Unix based OS I use, and Perl works on
everything as well. I've been told by a lot of people to go for Perl,
and the same number have said to use Python, and myself, I liked what I
was able to learn in Ruby, in the amount of time. I was reading a book
about Ruby, and it started out by telling me to load IRB, and that way
I could type things and make things happen as I went along, which is
good because I was at least understanding what was going on.
Eventually I want to learn C, and some day, if possible, I'd like to
learn Assembler just to get an idea of how the differences between
i386, i486, i586, i686, and MIPS, and basically learn the ins and outs
of old Sun hardware and Apple Hardware and SGI stuff. But really the
main goal I'd like to get to, is knowing C, but I've also learned that
before I learn C, I need to learn something simpler in terms of how it
works, like Perl, Python, Ruby, Shell Scripting, and so on, and once
I've gotten decent at one or two of those, I figured that would teach
me the Logical parts required for higher end things like C. I have read
a lot about Perl, and Ruby, and Python, and so I do know that any of
those three would be usable for more than just simple little Scripts,
and once I've learned maybe two of those, I figure it'll make learning
C easier.
Sorry again for the length of this, it's not meant to irritate anyone,
but I thought the question as to why now all of a sudden did I want to
start learning this stuff was a valid question, and without going into
a bit of History I didn't know of any other way to answer that
question, so again, sorry about the length and chunk of my life story I
typed out, but I thought if I gave some history it would make the
reasons a bit more clear.
Thank you everyone who replied, I value the opinions,
-Allen
_______________________________________________
https://lists.freebsd.org/mailman/listinfo/freebsd-questions
Allen,

The FreeBSD question list is your friend in learning.

I have been learning FreeBSD since 2.8 I think it was, I was born in
1941 and continue to learn. I am still employed as well. Most people
on the list are more knowlegable than you'll find anywhere else and
willing to share.I took time to visit a computer group on the Greek
Island of Crete a few years ago and found that to be true face to face
as well.

You will do fine with suggestions and help from the List.

~ Al Plant - Honolulu, Hawaii - Phone: 808-284-2740 ~
Supporting FreeBSD - UNIX Computer O/S
email: ***@hdk5.net email: alplant.att.net
."All that's really worth doing is what we do for others" - Lewis Carrol
William A. Mahaffey III
1970-01-01 00:00:00 UTC
Permalink
Post by Allen
On Fri, 1 Jul 2016 12:41:58 -0400
Post by Robert Hall
Post by Allen
I've been using FreeBSD on and off since 4.0-CURRENT, which seems
like almost a lifetime ago now, heh. I'm currently using FreeBSD
10.0-RELEASE and even though I've gotten my latest order from the
FreeBSD Mall (Which I bought 10.3-RELEASE on DVD along with a bunch
of other stuff for myself and my Wife) I'm not ready to upgrade yet
since I've gotten my system working how I like (Got WindowMaker set
up, and FVWM2, and some other stuff set up) so I'm using it for now.
Anyway, in all these years that have passed using FreeBSD and a
bunch of Linux distros, I never had time or patience enough to learn
Programming Languages, and I'm getting more and more to the part
where I'm thinking it's a good idea more so now than before.
Why is it a good idea now? If you just want to automate things on a
few computers, sh will run on any *nix box without installing
additional software. If you want to create GUIs in X, you'll need
something more complicated.
Before I respond too much, I wanted to say thanks to everyone that took
the time to reply, again, thank you. Any input is appreciated.
OK, the reason I'm thinking now is a better time, quite simply, I'm 33
years old now, and I've wanted to learn Coding in some way for a very
long time, and before recently, I really Honestly think that a part of
the reason I never learned, is that all through school, I always did
terrible in Math. I mean REALLY bad. I failed Math all the time and I
made the mistake of falling into thinking that "Well some people
aren't good at Math, and I'm one of them, and so I suck at Math" and
so on. The mistake being that I Believed that after a while, fully
ignoring the fact that I never stuck with anything long enough to
really learn it.
I bought myself "Teach yourself C++ in 24 hours" and at the
recommendation of a friend, bought myself "Teach yourself Visual Basic
in 24 Hours" and later on in life, after getting into Linux, BSD, and
Unix in general, I wanted to learn C, and bought myself a C book, and
then Perl, and as I mentioned I downloaded a bunch of different Books
about everything from Unix books, BSD Books, Linux Books, Unix
Security which I'm very much into, and basically anything to do with
Unix or BSD in general I grabbed it.
My problem seemed to be that when I'd get lost in a Coding Book, I'd
eventually give up. That, looking back, was a major mistake. I did
eventually go to College after getting a GED (Got kicked out of High
school for poor grades right after 10th Grade and so I had to go to an
Adult Learning Center, and I tested out of everything eventually) when
I started College I knew I wanted to do something in Computer Science,
and the two classes I took that I did the best in were Operating
Systems, and Security + (The Security + Class was a course designed to
help you take that Certification and so on) and I also took a C++
Class thinking that maybe if I had an instructor that could help
answer my questions I'd do better.
I eventually had to drop that course, and, I gave up again. So I've
got hundreds of books on everything you could imagine, and my goal is
one day to be able to work on BSD. I'm good with Security and I've
always been interested in how that works, and I even wrote the
Password Policy that's in use at my old College. It was a Mid Term
Paper I did and the Systems Admin happened to be in my class.
The Operating Systems Course was my other area of Enjoyment, and I've
always liked messing with Operating Systems, I collect them as well
and I've installed and ran everything from PC-DOS (Mind you, I didn't
even have a Computer until September of 1999, and I know that because
of an account I made online WAYYY back in the first week of getting my
first PC) and I even used BeOS heh. Which I did love by the way ;) )
Sorry about the length of this but I'm trying to make sure I give
enough info as to how and why I asked my question and what's lead up
to it.
I'm thinking Shell Scripting may be a good place to start as you said,
and you're right, I do NOT have the whole string of Logic thing down
really. And you're also right in saying that every book or text on
Coding seems to assume you already know this.
One of the reasons I had thought about Perl, Python, and Ruby, for
Perl, I wanted to learn that because I'd read that it was easier to
start with, but mainly, I have a book called "FreeBSD Unleashed, 2nd
Editon" and in that book, which is terrific by the way, it has a
chapter for Shell Scripting, and then, theres a Chapter dedicated to
Perl.
That book said that if you want to really get into FreeBSD that you
should have at the very least, a basic understanding of Perl Scripting
because it says some of the FreeBSD Configuration stuff was actually
Perl. Mind you this book covers 4.0 and 5.0, but again, if FreeBSD
uses Perl for anything, then I'd like to at least learn enough Perl
that I could be a FreeBSD System Admin.
My Goals as far as Coding / Programming goes, personally one day I'd
like to eventually be able to to Kernel Programming, or at least know
how to. Which I think is possible, but will take a long time and hard
work, and I'm OK with that, because it's something I really want.
Post by Robert Hall
From what I've seen so far, Shell Scripting is the first step, and
would teach me Logic Stringing and so on, and of course, that book
"FreeBSD Unleashed 2nd Edition" does say that for Shell Scripting,
it's a good starting point because I'd be using Commands that I'm
already familiar with, so it's not as big of a learning Curve. So I
have thought about that as well.
I really like Zsh. I have that installed on every machine I use. I
started out like most people do, with Bash on Linux, and Csh / TCsh on
BSD, and from what I've read, Csh based Shells are not ideal for
Scripting, and that Bourne based Shells are the way to go for that.
Post by Robert Hall
Pick something that you're likely to use a lot. Any language that you
know well will be more powerful than a language you don't know well.
For that, I know that Shell Scripting would serve purposes in that
respect no matter which Unix based OS I use, and Perl works on
everything as well. I've been told by a lot of people to go for Perl,
and the same number have said to use Python, and myself, I liked what I
was able to learn in Ruby, in the amount of time. I was reading a book
about Ruby, and it started out by telling me to load IRB, and that way
I could type things and make things happen as I went along, which is
good because I was at least understanding what was going on.
Eventually I want to learn C, and some day, if possible, I'd like to
learn Assembler just to get an idea of how the differences between
i386, i486, i586, i686, and MIPS, and basically learn the ins and outs
of old Sun hardware and Apple Hardware and SGI stuff. But really the
main goal I'd like to get to, is knowing C, but I've also learned that
before I learn C, I need to learn something simpler in terms of how it
works, like Perl, Python, Ruby, Shell Scripting, and so on, and once
I've gotten decent at one or two of those, I figured that would teach
me the Logical parts required for higher end things like C. I have read
a lot about Perl, and Ruby, and Python, and so I do know that any of
those three would be usable for more than just simple little Scripts,
and once I've learned maybe two of those, I figure it'll make learning
C easier.
Sorry again for the length of this, it's not meant to irritate anyone,
but I thought the question as to why now all of a sudden did I want to
start learning this stuff was a valid question, and without going into
a bit of History I didn't know of any other way to answer that
question, so again, sorry about the length and chunk of my life story I
typed out, but I thought if I gave some history it would make the
reasons a bit more clear.
Thank you everyone who replied, I value the opinions,
-Allen
_______________________________________________
https://lists.freebsd.org/mailman/listinfo/freebsd-questions
I held my tongue once I saw the kinds of replies coming in, but here
goes: The C programming language, Kernighan & Ritchie. Teaches
programming paradigms & language in 1 svelt(sp?) swoop. Also a small
tome, around 260 pgs, including appendices. Mine is 2nd edition, 1988, I
don't know if there are newer editions, but that one works for me to
this day. If you understand (*REALLY* understand) this book, anything
else will be an easy add on & you will be able to at least get into very
credible trouble kernel hacking, since all of the OS/kernel stuff is
(still, I believe) written in C. You can also write very good OO code in
C (see X11, at least early versions were written in C & were *VERY*
object oriented). My $0.02, no more, no less ....
--
William A. Mahaffey III

----------------------------------------------------------------------

"The M1 Garand is without doubt the finest implement of war
ever devised by man."
-- Gen. George S. Patton Jr.
Martin S. Weber
2016-07-01 20:21:17 UTC
Permalink
Get yourself a "Structure and Interpretation of Computer Programs"
(SICP), it's free and teaches scheme (a lisp). Once you've mastered
that, you may happily delve into several "low-level" schemes,
bells-and-whistles common lisps (e.g., clisp, sbcl), or "modern"
lisps like e.g., clojure/clojurescript.

If you take that route, you'll only have tired smiles for all the
great ideas that these "modern" scripting languages come up with.
If you add a bit of spice with e.g. Doug Hoyte's "Let Over Lambda",
you might enlighten yourself how a high-level language like a lisp
may get you hand-crafted assembler like performance.

Do yourself a favor and stay away from the modern scripting languages
that try to quirkily reimplement half-a-century old lisp (or
smalltalk) ideas.

Do it proper. Go Lisp. Enjoy.
Priyadarshan
2016-07-01 20:35:25 UTC
Permalink
Post by Martin S. Weber
Get yourself a "Structure and Interpretation of Computer Programs"
(SICP), it's free and teaches scheme (a lisp). Once you've mastered
that, you may happily delve into several "low-level" schemes,
bells-and-whistles common lisps (e.g., clisp, sbcl), or "modern"
lisps like e.g., clojure/clojurescript.
If you take that route, you'll only have tired smiles for all the
great ideas that these "modern" scripting languages come up with.
If you add a bit of spice with e.g. Doug Hoyte's "Let Over Lambda",
you might enlighten yourself how a high-level language like a lisp
may get you hand-crafted assembler like performance.
Do yourself a favor and stay away from the modern scripting languages
that try to quirkily reimplement half-a-century old lisp (or
smalltalk) ideas.
Do it proper. Go Lisp. Enjoy.
Yes, I did not dare to say that, but that is exactly what I should have
said.

If one really cares about programming, not just as coding per se , but
as craft, aesthetics, even lore, then personally the Lisp Way is a very
good way to learn.

Thanks for bringing up Doug Hoyte's «Let Over Lambda»
(http://letoverlambda.com) too, although that is considered an advanced
book, even for the more experienced programmers at our shop.


Priyadarshan
Russell L. Carter
2016-07-01 20:37:21 UTC
Permalink
Hooray, a bike shed for a rainy day.

Enough theory. Here's all you need:

http://programming-motherfucker.com/become.html

Pick one, start at the beginning, work your way through. (You can
read those three books online for free, if you need to. And use the
linux advice, it's basically the same as FreeBSD.)

Profit.

I have learned perl to expert level 3 times in 20 years.
(there's a clue in there about how much I like perl)

I spent 10 years writing all my scripts in ruby.

I made quite a bit of money writing c, c++ and fortran.

I can write bash expertly too. But any reasonably sophisticated bash
program ends up looking as transparent as a medium level perl
program. I.e., inscrutable.

I taught myself go, and it's very cool, for a kid's language. I wrote
a "configure" type front end to cmake in bash, perl, and go as an
exercise, and the go version is by far the most transparent, while
needing 25% less code. But the size of the binaries, egads. OTOH,
given the whole container religion is being built with it, you can
probably get a job easy. While the buzz lasts. The docs are very
high quality.

Nowadays I just write in c++14. Everything. It is bliss. But I've
been c++ templating since 1991. Having witnessed the insane variety
of f*cked up c++ projects though, I can't recommend it to a beginner.

Cheers,
Russell
Post by Garance A Drosehn
Post by Allen
Before I respond too much, I wanted to say thanks to everyone that took
the time to reply, again, thank you. Any input is appreciated.
OK, the reason I'm thinking now is a better time, quite simply, I'm 33
years old now, and I've wanted to learn Coding in some way for a very
long time, and before recently, I really Honestly think that a part of
the reason I never learned, is that all through school, I always did
terrible in Math.
I've programmed in many languages over the years. I think any one of
Perl, Python or Ruby would be fine. The main issue would be your
introduction to whatever language you pick.
https://pragprog.com/book/ltp2/learn-to-program
I'm sure there are similarly good introduction books which are based
on the other two languages. I work more with Ruby (and Crystal) than
the other two, so I tend to know more about Ruby-related options.
Another nice thing is to get used to typing in short code snippets
to figure out some detail in the language. In the case of ruby,
you'd use the unix command 'irb' (for "interactive Ruby"), and then
you can just type in a few lines of ruby to see what the language
does with them. With python you can do almost the same thing by simply
typing 'python' without any input files, and then typing in commands.
(and I expect there are better options that than). AFAIK, perl does
not come with one of these interactive coding tools, but certainly
http://www.sukria.net/perlconsole.html
The generic term for these convenient interactive interfaces is a
"REPL", which stays for "Read-Execute-Print-Loop". They can be
very helpful when learning a new language.
Personally I'm also interested in the new language of Swift, but
Swift is still evolving pretty rapidly, so it's probably not a good
language to jump into right now. (or at least, not if you're learning
to program on FreeBSD. Swift and Swift "playgrounds" would be much
more interesting if you were learning to program on macOS!).
Others have mentioned 'sh' and 'bash', and certainly I do a lot with
both of those. If you do want to write scripts in these shells, you
https://www.shellcheck.net
This is not a full-fledged REPL, because it doesn't execute any of
your shell code. But it does analyze the code to look for comment
causes of errors. You can also install the shellcheck command on
your own computer if you don't want to go to the web site.
It looks like there are web-based REPL's for several languages available
https://repl.it/languages
but I just came across that while googling right now, and have never
used any of the REPL's which are there.
Martin S. Weber
2016-07-01 20:43:33 UTC
Permalink
Post by Priyadarshan
(...)
Thanks for bringing up Doug Hoyte's «Let Over Lambda»
(http://letoverlambda.com) too, although that is considered an advanced
book, even for the more experienced programmers at our shop.
If LoL is too much for you, just read appendix D, it'll save your wrists and
sanity ;-) Oh and it should resonate with a BSD afficionado...

Regards,
-Martin
d***@safeport.com
2016-07-01 21:09:00 UTC
Permalink
I am only responding to a very small part of this thread. Back in the day I used
machine language, basic, fortran, algol (forced as I maintained a compiler),
snobol, and lisp (which I never really got the hang of).

In my unix life I use sh, perl, and python. Perl is kind of like snobol, both
had/have contests where the goal is either: I can do it with less statements, or
bet you can't figure out what this does.

At the end of the day if you like trying stuff and want/need an object oriented
language ruby and python seem good, I bypassed ruby for no good reason. My
problem with perl is when I go back to look at a script I wrote 2+ months ago my
ability to figure it out is inversely proportional to how far I have strayed
from having it look like C. So far in python I can go back and extend or modify
things. This is clearly just me but it is is line with the general nature of the
languages.
Post by Dimitri Minaev
In [1]: a=99
In [2]: b=999
In [3]: a is 99
Out[3]: True
In [4]: b is 999
Out[4]: False
I have never used 'is' but '==' is used for numerical comparasons and 'b == 999'
does the logical thing. Unless there is some symantic reason to the contrary, I
think 'b is 999' could be submitted as a bug.

With my first/second generation language experience I have a hard time with
object stuff. I am current starting to implement a billing system in python. I
have not picked a GUI but am leaning toward gtk3. I guess I will see how I feel
about python in a bit.

Since all my programming is FreeBSD based, I like perl and python as first
choices because both are just there if you have built a workstation. That
probably also changes as the GUI gets tossed into the mix.


_____
Douglas Denault
http://www.safeport.com
***@safeport.com
Voice: 301-217-9220
Fax: 301-217-9277
d***@holgerdanske.com
2016-07-01 20:11:58 UTC
Permalink
Post by Allen
Hi,
I've been using FreeBSD on and off since 4.0-CURRENT, which seems like
almost a lifetime ago now, heh. I'm currently using FreeBSD 10.0-RELEASE
and even though I've gotten my latest order from the FreeBSD Mall (Which I
bought 10.3-RELEASE on DVD along with a bunch of other stuff for myself
and my Wife) I'm not ready to upgrade yet since I've gotten my system
working how I like (Got WindowMaker set up, and FVWM2, and some other
stuff set up) so I'm using it for now.
Anyway, in all these years that have passed using FreeBSD and a bunch
of Linux distros, I never had time or patience enough to learn Programming
Languages, and I'm getting more and more to the part where
I'm thinking it's a good idea more so now than before.
I have the book "Learning Perl" that I bought a while back, and I've
also downloaded a bunch of stuff for Perl, Python, Ruby, and others, so I'm
just curious on basically what Languages anyone here would recommend.
Literally anyone who responds with an opinion, I'm interested. Being
easy to learn for someone who isn't great with Math but does understand
Unix is a plus but not a requirement. I was starting to teach myself
Ruby on a Linux box I was using for a while and Ruby did seem to be
going OK, but a lot of the FreeBSD Books I've bought recommend Perl, and
I've also had just as many reasons from people saying to try
Python, so basically any Language and what reasons would be great.
-Allen
If you wish to climb the Perl learning curve, the three canonical books to
begin the journey are:

1. Learning Perl -- the best introductory tutorial and exercise book.

2. Perl Cookbook -- a book of short, idiomatic Perl programs with
explanations and commentary that demonstrate how to solve common
programming tasks using Perl. This, plus the above, will give you the
ideas and confidence to solve basic to intermediate problems.

3. Programming Perl -- the definitive language reference. Use it to look
up the gory details. If you go far enough into Perl, eventually you will
want to read it cover to cover.


For Bourne shell, I have Learning the Bash Shell and Classic Shell Scripting.
To be blunt, neither is a very good for learning how to program.


For C, the canonical book is The C Programming Language.


For computer science concepts, the canonical book is Structure and
Interpretation of Computer Programs. This was/is the killer brain melt
freshmen engineering weeder text at MIT and Cal.


Of the bunch, I would suggest starting with C and shell, and then add Make
(the Gnu Make book is canonical). These are the tools used to build BSD,
Linux, user land, language processors, servers, clients, etc.. Add Perl
when you start bumping your head on the limits of Bourne shell scripts
and/or when you want to write prototypes quickly. Do SICP when you dare.


David
Polytropon
2016-07-02 01:21:41 UTC
Permalink
Post by Allen
On Fri, 01 Jul 2016 08:48:50 -0500
<*SNIP*>
[...]
Post by Brandon J. Wandersee
Since *nix is your platform, and you're looking for something
"simple," I'd have to recommend starting with Bourne shell
scripting.[1] Every Unix/Linux implementation uses shell scripts for
common tasks, and shell scripting will both teach you more about how
Unix-like operating systems work, and save you from being buried in
the low-level, highly abstracted, get-your-hands-really-dirty sorts
of tasks other programming languages are suited for. The Bourne shell
(/bin/sh) is found on all *nix platforms, and anything written in
good old Bourne syntax can be interpreted by any other shell (Bash,
ZSH, (T)CSH, Kourne...), so it serves as a good starting point for
learning how to write scripts for your shell of choice, and your
scripts will work anywhere a Unix shell is available. And since many
things in FreeBSD---including all the rc(8) and periodic(8)
scripts---are written in Bourne shell, learning that will give you
insight into how FreeBSD does some things under the hood, and
possibly let you change some of your system's behavior with relative
ease and without having to hack the operating system itself.
OK, this is what I'm aiming for as one of my short term Goals. I want
to be able to customize System Start Up and all that, but also be able
to write things I can use as well, and that seems like it's exactly
what I should do.
This is where basic shell skills are important (and handy) to have.
As the system's scripting shell is a common means of automating things,
you personally can benefit from those skills, as well as gain a better
understanding of what's happening at system boot time.
Post by Allen
Although I do eventually want to be able to Hack on the Kernel, that's
going to take me some time. It's one of my Long Term Goals. It's one of
the reasons that I asked my question here, because BSD is one of my
main OSs of Choice.
For this special field of programming, you should gain understanding
of C, the preprocessor, and Makefiles. Luckily, the FreeBSD sources
are a good learning resource as soon as you've understood the basics.
Just by reading and patching those sources you can have a great
educational "playground". :-)

Many prople will now say: "But C is hard!" Yes, C might be hard to
actually write productive and secure code in, but it's worth trying
to do so. Allow me to explain:

In the past, computers were more simple than today, and it was much
easier to understand what they're doing ...says the guy who had an
U880 assembler in his head when he was young. ;-) Today's systems are
so complicated that understanding lower-level things is not that easy
anymore. Sure, you can use languages like Python, Ruby, PHP, but you
will quickly understand thtat you're operating on a quite high level.
The more low-level stuff you want to do, the more you get into the
domain of C and assembly language. When you arrive there, the "building
blocks" you're dealing with are much less complex, but require _your_
understanding of things to become meaningful.

Furthermore, it's not a bad idea to at least have a look at many
different programming language paradigms: imprerative, functional,
object-oriented... "Obscure" languages like Forth or APL have a lot
to offer, even if you decide not to use them actively, but knowing
them and their concepts will enable you a much broader view of what
does exist and what's possible than a narrow-minded view on just one
programming language. And openness to thoughts is a fundamental skill
to programming. (Again, note that programming != coding.)

Programming in general is not just about reading, thinking, learning
and understanding, it's also about experimenting. Be curious on where
it will lead you. More or less, the journey is the goal when you start
programming, and if there is a useful tool as a result - even better!
Post by Allen
Thank you :) I'll look into these as well. I think I should have
renamed the thread a little, because "Simple" Was probably not the best
word to use for this, but again, thanks for replying.
"Simple" depends on what you want to do. As most things in life,
programming starts with a decision, a dream, a thought or a guess.
"What do I want to achieve?" is the question that leads you on your
way to find the (better: "your") proper tool for this job. The more
you already know, the better your choice can be. Of course there can
be a lot of "trial & error", but as long as you learn from it, it's
not a problem. Even if you say (like I often do): "My choice of tools
was bad, I should have been using Perl instead of awk for this task.
But I'm too lazy to recode the whole thing..." :-)

And don't let people tell you that you're "too old" to enter the
interesting field of programming, or you're "not qualified" because
you don't have a CS degree, or "doing it wrong" just because you're
not using their favorite language or OS. "Programming is hard" might
be discouraging, but it's definitely worth it, because as with many
things in life: Reality depends. The "hard" is as individual as "the
best tool" or "the best result".

The things you don't understand you'll not be able to control.
The things you don't control will control you.
The things that control you will eventually make you stop thinking.
:-)
--
Polytropon
Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...
Matthew Seaman
2016-07-02 14:52:56 UTC
Permalink
Post by Allen
Post by Brandon J. Wandersee
I'll echo what some others have said, and recommend that before you
learn any language you should learn about the fundamentals and
different paradigms of programming itself: variables, loops,
branches, and all that. Most programming language tutorials I've seen
assume the reader already has a general understanding of how to
string logic together when writing a program.
I agree with you; Every book or how to that I seem to see, assumes from
the get go that you already have an understanding of this, and I don't
really.
Yeah. There are whole underlying sets of concepts that are common to
pretty much all programming techniques. These are something you tend to
pick up as you go along rather than learning about specifically.

You can't really understand these things separately to the experience of
programming, but to the sort of people that write programming languages
or that write textbooks about programming they're so basic and so
familiar that they just seem self evident and not really worth talking
about.

The best approach is simply to jump in there and have a go. Learn by
making and fixing your own mistakes. It seems really hard at first, but
that's mostly unfamiliarity. You'll quickly get over that, and once
you've taken a few steps, the following ones come easier. It doesn't
really matter what language you choose for this, although some will
highlight particular areas more than others. That's why it's good to
learn many different languages -- as many as possible really -- since
each new language will extend and build upon concepts from the last one.
You'll find they get easier as you go along. Not only that, but the
lessons learned with new languages will add to your understanding of
previous languages.

Try and find good examples to copy -- stress over the 'good' part
though, and think about why certain things are done the way they are.
Like any intellectual exercise, this is where you are going to have to
engage your critical faculties. The Internet is full of the results of
people blindly copying each other's bad examples, and sometimes it's
hard for the voice of reason to make itself heard over the thundering
herd galloping in the wrong direction.

Cheers,

Matthew
Dean E. Weimer
2016-07-02 15:44:16 UTC
Permalink
Post by d***@safeport.com
I am only responding to a very small part of this thread. Back in the
day I used machine language, basic, fortran, algol (forced as I
maintained a compiler), snobol, and lisp (which I never really got the
hang of).
In my unix life I use sh, perl, and python. Perl is kind of like
snobol, both had/have contests where the goal is either: I can do it
with less statements, or bet you can't figure out what this does.
At the end of the day if you like trying stuff and want/need an object
oriented language ruby and python seem good, I bypassed ruby for no
good reason. My problem with perl is when I go back to look at a
script I wrote 2+ months ago my ability to figure it out is inversely
proportional to how far I have strayed from having it look like C. So
far in python I can go back and extend or modify things. This is
clearly just me but it is is line with the general nature of the
languages.
Post by Dimitri Minaev
Besides, Python, however logical it is, may be unpredictable. For
In [1]: a=99
In [2]: b=999
In [3]: a is 99
Out[3]: True
In [4]: b is 999
Out[4]: False
I have never used 'is' but '==' is used for numerical comparasons and
'b == 999' does the logical thing. Unless there is some symantic
reason to the contrary, I think 'b is 999' could be submitted as a
bug.
With my first/second generation language experience I have a hard time
with object stuff. I am current starting to implement a billing system
in python. I have not picked a GUI but am leaning toward gtk3. I guess
I will see how I feel about python in a bit.
You might want to look into Qt, I started with Python using Tkinter as
it was included without needed additional libraries. Then somewhere
along the way I stumbled upon Eric IDE, and found its integration with
the Qt Designer a nice rapid way of implementing a GUI within Python.
But then again I am a system admin who dabbles a bit in programming, so
there may be some programmers out there that might not think my 2 cents
is worth the copper the pennies were struck from. It does have the
advantage/drawback of allowing you to drag and drop GUI elements into
your layout, and not have to learn all the GUI syntax, then you simply
write the Python code respond to the triggers sent from the GUI. Its a
plus and a minus all in one and a lot depends on your perspective and
what your target audience is for the end result/program.
--
Thanks,
Dean E. Weimer
http://www.dweimer.net/
Allen
2016-07-03 20:26:34 UTC
Permalink
Hi,

I just wanted to say thank you to everyone who took the time to reply
to my question. It means a lot to me, and I appreciate it. Thank you
everyone! I'm thinking what I'll do, is basically start out with Shell
Scripting, and once I've got that at least understood where I can edit
my boxe's Configuration Files, and not screw it up (Not really scared
of doing that, when I started learning Ruby I messed with every example
in each book I was reading through just to see what would happen, I'm
naturally curious like that ) and once I'm able to understand and write
decent scripts, I'm going to then toy with Perl, Python, and Ruby.

The reason I'm thinking all three, is that, well, for one, I like that
idea, but also it wouldn't hurt to know 3 different languages, as that
should make learning C a lot easier. My long term goal, is going to be
learning C, and maybe eventually some Assembler, but mainly C.

I really like what I would be able to do with Perl and Ruby, and
there's also quite a lot Python will do for me personally, so I think
this will be the steps:

Shell Scripting > Perl/Python/Ruby > C .... Profit! :)

Thanks again everyone, it was great to see some of the replies and
knowing it wasn't something everyone else got and I didn't in terms of
HOW to learn these things.

-Allen
Steve O'Hara-Smith
2016-07-03 20:34:42 UTC
Permalink
On Sun, 3 Jul 2016 16:26:34 -0400
Post by Allen
Shell Scripting > Perl/Python/Ruby > C .... Profit! :)
Sounds like a plan - good luck with it and don't be afraid to
spread yourself thin over the languages once you've got the basics under
your belt. There's much to be said for spending just enough time with a
language to understand what it is good for and where it's weak and then move
on to learn another - when you have a real task to get done spend a few
minutes deciding on the most suitable language from among the ones you
know. You'll soon develop favourites.
--
Steve O'Hara-Smith <***@sohara.org>
Allen
2016-07-03 20:52:54 UTC
Permalink
On Sun, 3 Jul 2016 21:34:42 +0100
Post by Steve O'Hara-Smith
On Sun, 3 Jul 2016 16:26:34 -0400
Post by Allen
Shell Scripting > Perl/Python/Ruby > C .... Profit! :)
Sounds like a plan - good luck with it and don't be afraid to
spread yourself thin over the languages once you've got the basics
under your belt. There's much to be said for spending just enough
time with a language to understand what it is good for and where it's
weak and then move on to learn another - when you have a real task to
get done spend a few minutes deciding on the most suitable language
from among the ones you know. You'll soon develop favourites.
Thank you :) That's actually part of the reason I had decided on the
Perl/Python/Ruby thing, as from what I've seen, each of those three
have their own strong points and low points, and they're all a bit
different even though it seems like people use them for similar tasks.
Though I'm not sure that's something I'd do lol.

Thanks again!

-Allen
David Christensen
2016-07-03 21:30:09 UTC
Permalink
Post by Allen
Hi,
I just wanted to say thank you to everyone who took the time to reply
to my question. It means a lot to me, and I appreciate it. Thank you
everyone! I'm thinking what I'll do, is basically start out with Shell
Scripting, and once I've got that at least understood where I can edit
my boxe's Configuration Files, and not screw it up (Not really scared
of doing that, when I started learning Ruby I messed with every example
in each book I was reading through just to see what would happen, I'm
naturally curious like that ) and once I'm able to understand and write
decent scripts, I'm going to then toy with Perl, Python, and Ruby.
The reason I'm thinking all three, is that, well, for one, I like that
idea, but also it wouldn't hurt to know 3 different languages, as that
should make learning C a lot easier. My long term goal, is going to be
learning C, and maybe eventually some Assembler, but mainly C.
I really like what I would be able to do with Perl and Ruby, and
there's also quite a lot Python will do for me personally, so I think
Shell Scripting > Perl/Python/Ruby > C .... Profit! :)
Thanks again everyone, it was great to see some of the replies and
knowing it wasn't something everyone else got and I didn't in terms of
HOW to learn these things.
Other tools that I should have mentioned:

1. A text mode editor that works over SSH. (Another bike shed topic; I
use Vim.)

2. A version control system. (Yet another; I use CVS.)


I've settled on the following languages/ tools, and think of them in
levels of complexity (from highest to lowest):

Higher-Order Perl [1]
Perl
Bourne shell, Make
C
assembly


The lower levels are suited for ROM monitors, interpretors, kernels,
device drivers, file systems, communications stacks, shells, editors,
lexers, parsers, compilers, interpreters, etc. -- e.g. software that
requires maximal efficiency (space, time) and/or must be programmed
"close to the hardware".


The upper levels reduce complexity, making it easier for human beings to
write powerful and sophisticated programs that work correctly. If you
learn a little C++, a little Perl, a little Python, a little Ruby, etc.,
you will never reach the highest levels. Therefore, I'd advising
picking one high-level language and mastering it (similar to martial
arts or musical instruments).


David

[1] http://hop.perl.plover.com/
Thomas Mueller
2016-07-05 08:05:56 UTC
Permalink
Post by Allen
The Operating Systems Course was my other area of Enjoyment, and I've
always liked messing with Operating Systems, I collect them as well
and I've installed and ran everything from PC-DOS (Mind you, I didn't
even have a Computer until September of 1999, and I know that because
of an account I made online WAYYY back in the first week of getting my
first PC) and I even used BeOS heh. Which I did love by the way ;) )
BeOS is not dead! BeOS lives on but now in a different, open-source form, Haiku
haiku-os.org

A little off-topic, maybe, but I didn't want it to slip by. Anybody who responds on this particular matter may want to change the subject.

Tom
Erich Dollansky
2016-07-05 08:22:50 UTC
Permalink
Hi,

On Thu, 30 Jun 2016 17:52:43 -0400
Post by Allen
Literally anyone who responds with an opinion, I'm interested. Being
there are two ways to find a programming language. If it is just for
fun, then take what you want. The languages you mentioned are more or
less for scripting. Why not use the language of your favourite shell.

In my personal experience, way too much time is wasted in the languages
between shell scripts and hard-core things like C/C++.

There is also another thing not to forget. If you more orientated
towards the Internet, you can use scripting languages more common
there. This could be Pearl again, it also could be PHP.

Why don't you play a bit around?

Erich
Polytropon
2016-07-05 14:48:24 UTC
Permalink
Post by Erich Dollansky
There is also another thing not to forget. If you more orientated
towards the Internet, you can use scripting languages more common
there. This could be Pearl again, it also could be PHP.
Allow me a short addition:

Today, more and more web development seems to take place in
Javascript, either for client-side browser logic, or for
server-side stuff (Node.js), usually accompanied by the
famous "framework of the week", which is the one that once
you've learned it, it will be declared obsolete and not
supported anymore.

Javascript as a language has many "interesting" things to
pay attention to, like == != ===, non-commutative + in
regards or array and object, nested calls, no regular
integers, and so on, so there is a lot to learn.

If you're interested in what I'm talking about, here are
two Javascript-related videos by Gary Bernhardt:

Wat
https://www.destroyallsoftware.com/talks/wat

and:

The Birth & Death of JavaScript
https://www.destroyallsoftware.com/talks/the-birth-and-death-of-javascript

And I'm _not_ saying Javascript is bad... ;-)
--
Polytropon
Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...
james
2016-07-07 05:38:12 UTC
Permalink
Post by Allen
I have the book "Learning Perl" that I bought a while back, and I've
also downloaded a bunch of stuff for Perl, Python, Ruby, and others, so
I'm just curious on basically what Languages anyone here would
recommend.
I'll go against the flow here and suggest Go.

Like Python, there's plenty of batteries included in the Go ecosystem.
Its also portable.
I found it easy to learn, and it has automatic storage management.

While its fully compiled, the compilation process is very fast - fast
enough that
compile-on-demand as a scripting substitute is workable.

Unlike Python:
- it runs very fast
- it has some reasonable strong typing

A dynamic typed language may seem easier to learn, but I think its illusory.

I'd really like to suggest Haskell, because I'd say that after years of
experience I
became a better programmer when I started to learn it, but its an
unusual choice.

James
Murk Fletcher
2016-07-07 06:02:04 UTC
Permalink
Ruby is really the only way to go. Python is nice but the majority of
people supporting it are those who've spent most of their lives learning it
and would do anything to defend it.

Look up "Rails vs Python" etc. on YouTube (although comedy sketches).

--Murk
Post by james
Post by Allen
I have the book "Learning Perl" that I bought a while back, and I've
also downloaded a bunch of stuff for Perl, Python, Ruby, and others, so
I'm just curious on basically what Languages anyone here would
recommend.
I'll go against the flow here and suggest Go.
Like Python, there's plenty of batteries included in the Go ecosystem.
Its also portable.
I found it easy to learn, and it has automatic storage management.
While its fully compiled, the compilation process is very fast - fast
enough that
compile-on-demand as a scripting substitute is workable.
- it runs very fast
- it has some reasonable strong typing
A dynamic typed language may seem easier to learn, but I think its
illusory.
I'd really like to suggest Haskell, because I'd say that after years of
experience I
became a better programmer when I started to learn it, but its an unusual
choice.
James
_______________________________________________
https://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "
Steve O'Hara-Smith
2016-07-07 06:35:33 UTC
Permalink
On Thu, 7 Jul 2016 08:02:04 +0200
Post by Murk Fletcher
Ruby is really the only way to go.
This is bad advice - and you can substitute anything you like for
Ruby in that sentence and it is still bad advice. There is no single best
language.
Post by Murk Fletcher
Python is nice but the majority of
people supporting it are those who've spent most of their lives learning
it and would do anything to defend it.
Programming languages are not fashion items or sports teams,
they're tools, and like tools it is not the case that a socket set is the
only way to go because spanners are sometimes the best option and for some
jobs a screwdriver is needed.
--
Steve O'Hara-Smith <***@sohara.org>
Loading...