This is an archived, read-only copy of the United-TI subforum , including posts and topic from May 2003 to April 2012. If you would like to discuss any of the topics in this forum, you can visit Cemetech's Calculator Programming subforum. Some of these topics may also be directly-linked to active Cemetech topics. If you are a Cemetech member with a linked United-TI account, you can link United-TI topics here with your current Cemetech topics.

This forum is locked: you cannot post, reply to, or edit topics. General Coding and Design => Calculator Programming
Author Message
Galandros


Active Member


Joined: 29 Aug 2008
Posts: 565

Posted: 15 Oct 2008 12:13:49 pm    Post subject:

I am curious about other languages than TI BASIC and z80 ASM. And seeing some code of other languages made my mouth watering.
And by googling I have hard work ahead to find good tutorials.

Certainly someone has passed this situation so it could help by giving me some good sites about these languages:
- C
- C++ (in this forum already posted to this one but more won't hurt)
- Pascal

- html
- php

- Java/Java script

And also I would appreciate an option for choose C, C++ or Pascal. I know they have, somewhat, the same goals in mind but I would like to know which is more powerful/easy to learn so I could opt by learning first one.

Also I have heard about Python and I know nothing with sure about it. And what is the difference between Java and Java script. Java script is like Java but for web sites, right? And Java as the same "goals" as C, C++?
What the hell is Mysql? Some php tutorials put that in and the idea I have from mysql is that is a kind of database? (because I hosted a site utility for a game that used mysql)

I am open for other language suggestions and also good compilers/linkers/debuggers or even ide's. Some good tutorials have already that and I have not learned the language so it isn't the priority for now. Besides I will advance pretty fast I think from my experience on TI BASIC, although is a very poor language compared to C...

If the answers are good, some moderator could pin this topic because this would be to many others for sure.

Sorry for so many answers. Thanks in advance. Wink
Back to top
simplethinker
snjwffl


Active Member


Joined: 25 Jul 2006
Posts: 700

Posted: 15 Oct 2008 02:10:24 pm    Post subject:

I would recommend Python for your first computer language. It's fairly intuitive and well-documented. Since it's an interpreted language you don't have to worry about compilers and it's easy to test-out or play with code without creating another program.
The Python site has a lot of tutorials but I would recommend Learning to program by Alan Gauld. It's a beginner's tutorial for Python as well as VBScript and JavaScript.

Thinking in C++ by Bruce Eckel is good (it's what I first used). It has a section on the relationship between C and C++.
He also has "Thinking in Java" which follows roughly the same format and development (I only looked through the TOC of this though).
Back to top
benryves


Active Member


Joined: 23 Feb 2006
Posts: 564

Posted: 15 Oct 2008 02:11:57 pm    Post subject:

Galandros wrote:
- html
HTML is not a programming language, it's a markup language. Smile
Quote:
- Java/Java script
"JavaScript" was only named as such to capitalise on the hype of Java in its early days. Technically, it's ECMAScript, and is a completely different language to Java. It's actually a very nice language, but has a bad rep due to variations in implementations across browsers (Firefox has JavaScript, IE has JScript, Opera has ECMAScript with bits of JavaScript and JScript). Flash's ActionScript is yet another incarnation of ECMAScript.
Quote:
And also I would appreciate an option for choose C, C++ or Pascal. I know they have, somewhat, the same goals in mind but I would like to know which is more powerful/easy to learn so I could opt by learning first one.
C and C++ are fairly horrible languages and Pascal is a little archaic. Personally, if I had to go for one of those, I'd go for Pascal (or Delphi, which is a variation on it) as the easiest. C and C++ are generally referred to as "systems" programming languages, and are powerful, but they have reams of undefined behaviour and a very silly compilation model. Pretty much any mainstream programming language is going to be "powerful" enough for most tasks these days.

Quote:
Also I have heard about Python and I know nothing with sure about it.
Python is a much better idea than the languages mentioned above. It's fairly elegant, easy to use, and flexible.

Quote:
And Java as the same "goals" as C, C++?
Java is similar to C and C++ only insofar as it uses curly braces. It's a rather different language, with a different design philosophy. (Gone are the undefined behaviour pitfalls of C and C++, as well as the horrible compilation model). I'm a big fan of C# (which is very clearly based on Java's ideals), which fixes some of the problems of Java (like its generics implemented as a compiler hack).

Quote:
What the hell is Mysql? Some php tutorials put that in and the idea I have from mysql is that is a kind of database? (because I hosted a site utility for a game that used mysql)
MySQL is a relational database management system (or RDMS). That is, it presents an interface that allows you to access relational databases. It's commonly used with PHP, but you can use it with any language you really want to.

Quote:
I am open for other language suggestions and also good compilers/linkers/debuggers or even ide's.
Visual Studio Express offers free versions of Microsoft's Visual Studio.

GameDev.net ran a C# Workshop that may be useful if you intended on learning C#. I'll agree with my peers and recommend Python or C#. Ultimately, all programming is the same, just expressed a bit differently in different languages. This is why a language that doesn't get in the way and force you to learn its particular quirks is a good starting place.

Sorry if my answers are all over the place, but your questions were a bit as well. :P

(Oh, and TI-BASIC isn't BASIC. TI haven't even given it an official name, but it's certainly nothing like BASIC). Wink
Back to top
Galandros


Active Member


Joined: 29 Aug 2008
Posts: 565

Posted: 15 Oct 2008 04:16:03 pm    Post subject:

benryves wrote:
Sorry if my answers are all over the place, but your questions were a bit as well. Razz

Yeah, too general. But don't worry. They hit many doubts, without miss the fundamental, I can even say bull eyes! And arised some others =P (smaller)

So html is like the popular BBCode in forums, heh? So I only need the list of most useful and used marks of html. And examples or explanation of their results.


I will look at the section between C and C++ for curiosity (maybe someday...) and try Python and C#.
C and C++ must be really scary because of such power. ^^ But do not scary as much as an assembly.

So what is real BASIC like? Comparing to the other alternatives could help to answer and clarify me. I made an idea that the TI language was kind apart from the BASIC but not so much like you say.

I still have many questions but I can solve them by myself if I learn more of the languages, so excuse to bombard you. :biggrin:


Tests are beginning, so I won't have much time but in some free time I will look a little to "relax". XD (I have serious odd hobbies =D )

EDIT: miss tutorials for html and php. I put Pascal, C, C++ out of the deck for now. And Javascript is altogether with Python tutorial. Java and BASIC I would like to see a tutorial.


Last edited by Guest on 15 Oct 2008 04:25:01 pm; edited 1 time in total
Back to top
benryves


Active Member


Joined: 23 Feb 2006
Posts: 564

Posted: 15 Oct 2008 04:48:37 pm    Post subject:

Galandros wrote:
So html is like the popular BBCode in forums, heh? So I only need the list of most useful and used marks of html. And examples or explanation of their results.
Try W3Schools for HTML. :)

Quote:
C and C++ must be really scary because of such power. ^^ But do not scary as much as an assembly.
You get as much power in other languages, however it's not as easy to accidentally shoot yourself in the foot in the process as with C or C++.

Quote:
So what is real BASIC like? Comparing to the other alternatives could help to answer and clarify me. I made an idea that the TI language was kind apart from the BASIC but not so much like you say.
Well, there are many differences. BASIC supports named variables, for example (the language on the TI is limited to using pre-determined variable names, with the exception of lists). There are several standard functions or statements in BASIC that are missing or have a different name on the TI (eg LEN for string length, MID$ for substrings, VAL to convert a string to a number). BASIC also supports subroutines, in "unstructured" BASICs by doing GOSUB <label> followed by RETURN, in structured BASICs with something like the SUB or FUNCTION keyword. BASIC uses x=y to assign y to x, not y->x. See here for some samples of BBC BASIC, an proper "oldschool" BASIC dialect.

Quote:
I still have many questions but I can solve them by myself if I learn more of the languages, so excuse to bombard you. :biggrin:
I advise that you stick to one language at a time!
Back to top
sgm


Calc Guru


Joined: 04 Sep 2003
Posts: 1265

Posted: 16 Oct 2008 02:32:25 am    Post subject:

Scheme (may as well). Here's some resources:

How to Design Programs
Structure and Interpretation of Computer Programs
SICP video lectures
Back to top
Galandros


Active Member


Joined: 29 Aug 2008
Posts: 565

Posted: 16 Oct 2008 08:54:48 am    Post subject:

Yes, I stick to one at a time.

Perl, what you can say about it, briefly? At this rate we will cover the most used languages ever xD
Back to top
benryves


Active Member


Joined: 23 Feb 2006
Posts: 564

Posted: 16 Oct 2008 09:38:49 am    Post subject:

Perl's pretty nice. There are a lot of modules for it, making it easy to use (just glue together the functionality others have provided). PHP is similar in syntax to Perl, but not as clean a design (eg Perl neatly segregates modules, PHP dumps everything as a function into a global namespace). It's good for command-line scripting and is good on the web too, though is not as easily available on cheap hosts these days as PHP.
Back to top
CoBB


Active Member


Joined: 30 Jun 2003
Posts: 720

Posted: 19 Oct 2008 01:39:43 am    Post subject:

benryves wrote:
Ultimately, all programming is the same, just expressed a bit differently in different languages.

Now this is a very misleading statement. You can only say that different languages are capable of ultimately describing the same huge set of problems (i.e. those that can be expressed with an algorithm), but there are many fundamentally different approaches, and they are usually associated with a class of problems they are really good at solving, while they make others awkward to express. It’s not just ‘a bit’ of difference. :)

I can only recommend learning a wide selection of languages that cover as many features as possible: imperative vs. declarative, statically typed vs. dynamically typed, compiled vs. interpreted, managed vs. native and so on. All of these language design decisions have their own holy wars, while in reality all of them have their strengths and weaknesses. The best you can do is gain experience and decide for yourself which fits your style better.

C is good, because it provides a common basis (understanding pointers and data structures at a low level), and it has the property of not doing anything less or more than you actually write (which is an advantage and disadvantage at the same time). Even if you don’t use it normally, the skill of at least reading and understanding C code is a must in my opinion, it’s like the alphabet of programming.

For an OO language I also recommend C#. It is a better thought-out language than Java, and so is the whole environment (I mean the class libraries, not any kind of IDE). I don’t agree though that you can’t shoot yourself in the foot as easily as with C, that only applies to some specific problems like memory management.

Python is also a good candidate. It is probably the best pick from the dynamically typed camp, very beginner-friendly with a nice syntax.

Sigma mentioned SICP and Scheme, and I think it’s a very important contribution to this topic. I would never use Scheme in real life myself, even if I see why Lisp derivatives are considered the Ultimate Language by some. However, it works wonderfully as a language for teaching concepts, and those books are a must read for any aspiring programmer, period.

Another one I would bring up is Erlang, because it introduces you to a completely different philosophy: large-scale parallelism with hermetically isolated processes (a kind of encapsulation that’s very different from the OO way) and explicit planning for errors. It’s definitely worth looking into.

While Scheme is pretty much a functional language, I think Haskell is a much better representative of the FL camp, because it has a much more practical syntax and it is not limited to just massaging data structures while still retaining purity (freedom of side-effects) as much as possible. It’s a good platform to learn about advanced type systems, higher-order functions and side-effect free programming and why these things are good for your health. I’ve been playing around with OpenGL in Haskell recently, and I have to say that it’s a very pleasant experience.

Finally, have a good look at Prolog, just to get familiar with logic programming as well. It is absolutely weird at first (second, third...) glance, but it is a very practical language for certain application domains. It also provides the best basis for constraint programming, another paradigm you should familiarise yourself with.

Keep in mind that most of the problems stem from bad organisation of your code rather than specific properties of the language you’re using. The only way to overcome it is to write a lot of code and read a lot of code produced by others. You can only develop a good design skill through a combination of rigorous practice and self-education. Also, don’t be afraid to disagree with things you read, but be open to new ideas at the same time. Smile
Back to top
Galandros


Active Member


Joined: 29 Aug 2008
Posts: 565

Posted: 19 Oct 2008 03:09:23 am    Post subject:

Well, there are too much languages now. Cool I will focus just one at a time or two later when I have experience in the first or I don't have time to live my life.

Actually, now I have a wider vision of programming and didn't imagine some other languages concepts. When I look to some interpreted languages source code it starts to look all the same, if they have similar designs. Besides I know from some experience that every language has its own challenges.


Last edited by Guest on 19 Oct 2008 03:15:14 am; edited 1 time in total
Back to top
Galandros


Active Member


Joined: 29 Aug 2008
Posts: 565

Posted: 27 Apr 2009 11:33:43 am    Post subject:

After seeing Mono, I am almost giving a go for C# someday.
I didn't decide C# because without Mono I would be restricted to Windows...

Still has Mono some very bad aspect? And how the compatibility between .NET and Mono works? (brief explanation)
And one doubt: does C# can be sort of compiled or don't need anything installed to work? (burying myself in this question?) :P

I buried the thread only because I still need it...
Back to top
benryves


Active Member


Joined: 23 Feb 2006
Posts: 564

Posted: 27 Apr 2009 03:02:04 pm    Post subject:

Mono is not 100% compatible with all of the .NET framework class library, though it has decent coverage. Mono have helpfully provided a tool, called MoMA, to check a program to see if it uses any of the .NET framework class library features that it doesn't support. Another portability caveat is that .NET supports interop with unmanaged code; if you have a .NET application that calls a native Windows DLL, that's obviously not going to work on Linux and vice-versa. "Pure" .NET apps are fine, of course.

Pretty much every serious programming language needs some additional runtime support, and like every other language there are ways around this requirement - but as with these other languages, you end up with larger binaries and won't gain any advantage from future bug fixes or performance improvements in later versions of the runtime. The big advantage of Mono's static compilation is to deploy applications to platforms that don't support .NET, such as the iPhone or Wii.

That said, C# is still compiled - just not to x86 machine code, but to the higher-level CIL. The .NET runtime then just-in-time compiles this to native code as and when required to run on the user's native CPU - whatever that is. This incurs a tiny performance hit the first time a block of code is executed; if this bothers you you can precompile the CIL to native code via ngen.exe as part of your installer (this is what Paint.NET's installer crunches away on at the end).
Back to top
Display posts from previous:   
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
    »
» View previous topic :: View next topic  
Page 1 of 1 » All times are UTC - 5 Hours

 

Advertisement