Concerning my assertion that Python outshines Scilab & co in many other
areas,
* being a general purpose language, I feel that Python has a broader
range of application. For instance, for creating a web-app, Scilab
would certainly not be my first choice, while Python is commonly
used for that purpose.
* Python enables to write object-oriented code and has some features
from functional programming that are quite nice. While Matlab and
Octave have some "solid" OO features (at least, its enough for what
I'm doing with it), Scilab is lacking with respect to this point.
For functional programming, all other environment are far behind
what Python has to offer. For instance I find that expressions as
stripped_list = [line.strip() for line in line_list if line !=
""]
are really elegant and readable. More generally, manipulating lists
in python is made really easy.
I really enjoy lists in Scilab. They feel more coherent to me than
cells in Matlab, but I wish they had more python-like features.
* I feel that interfacing with other languages is easier with Python
than with Scilab/Matlab/Octave.
* Packages, modules and namespaces enable to create very clear structures.
Besides, I could not agree more with you concerning bad
syntaxes/redundancy. Having a coherent environment is important.
A step towards this goal may be to update and complete the code
convention for Scilab
<https://wiki.scilab.org/Code%20Conventions%20for%20the%20Scilab%20Programming%20Language?action=info>
in a similar fashion to Python PEP
<https://www.python.org/dev/peps/pep-0008/>?
Regards,
Pierre
Le 02/03/2017 à 23:23, Samuel Gougeon a écrit :
Hello Ricardo,
Le 02/03/2017 à 19:33, Ricardo Fabbri a écrit :
Speaking from experience:
It is worth mentioning that in many ways performance is not critical
for a "lab" language like Scilab or Matlab. It is just an extremely
simple language to test concepts and algorithms at a very small scale
of granularity. The real crucial factor for Scilab or Matlab is the
GUI for exploring data and developing algorithms interactively. Once
you have a working solution, you'll fit it inside a bigger and more
relevant
system by porting promptly to a language like C++ for scalability and
speed.
Just use Scilab for what its worth, don't obsess with speed, even
though it is important.
I agree: Matlab, Scilab, Octave, IDL, GDL.. Yorick etc were and are
still first made for prototyping, not for speed. This is why they were
back to interpreted -- and so slower -- languages.
But they should not have any handicapping snail instructions for
common frequently used ones like scf(). Loosing time gained with an
easy language avoiding to declare each object type and to compile and
link the whole thing each time that we change a semicolon in the
code... would be meaningless.
So yes, i definitely agree: it is a matter or ergonomic for GUIs but
also and first for the language (regular namings, rational order of
arguments, etc) that make it easy to learn and use. This is somewhat
why i never really got inside python (and sciPy). I felt its syntax
not straightforward to learn, even for simple things. Same thing for
R. And it's always the same feeling when i try to compare results from
these various languages -- including javascript --, for instance to
extend Scilab or debug it, seeing usages or conventions the most used
elsewhere. Each time, it is quite harder for me to find and understand
the relevant syntax with Python and R, while for instance i find
javascript more intuitive.
This is why i don't know much about Python. When Pierre writes "Python
outshines Scilab/Octave/Matlab in many other areas.", i would be
interested to know more about that.
I agree with you, Pierre, about the whole environment. This is why, on
this aspect, we could have a specific discussion about which modules
-- with which components -- should rather compose "Scilab core", and
which features could be distributed rather on ATOMS. I am not
convinced that the current "Scilab core" composition is optimal. IMO,
it is quite unbalanced by historical or particular influences.
As a conclusion, i think that introducing non-optimal syntaxes or
duplicates etc in the language hurts much more than introducing a
quite slow algorithm. Simply because the algorithm can be changed
later without breaking anything, while introducing badly designed
syntaxes or usages is much harder to manage afterwards, and impedes
much more learning, using and maintaining the language.
Best regards
Samuel
_______________________________________________
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users
_______________________________________________
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users