Shop OBEX P1 Docs P2 Docs Learn Events
C You Later — Parallax Forums

C You Later

idbruceidbruce Posts: 6,197
edited 2015-03-12 11:18 in Propeller 1
Hello Everyone

Just wanted to share a couple thoughts with you.....

Someone recently told me that they were reluctant to learn C, and I was somewhat understanding, because even though I am familiar with C and C++, I was also reluctant to walk away from the comfort zone of programming in SPIN.

After jumping back into C, I want to tell all those reluctant people, that my Propeller programming has never been so productive. Most of my code is already written for me and most of all of my problems have already been solved by someone else. All I have to do is a little searching and WHOLA, there she blows, problem solved.

Believe me, I can understand how difficult it may appear, because I have been there myself, but trust me, you will never regret jumping in and learning the language, and I just want to encourage all of those reluctant forum members to become more productive.

Bruce
«134

Comments

  • Ken GraceyKen Gracey Posts: 7,392
    edited 2015-03-08 21:38
    Yep, I've found there are situations where it's really a matter of using the Simple Tools and libraries Andy provided. If you can gather up all the tools you need for the project from our C libraries then it can be quite productive.

    Ken Gracey
  • idbruceidbruce Posts: 6,197
    edited 2015-03-08 21:49
    Ken
    Yep, I've found there are situations where it's really a matter of using the Simple Tools and libraries Andy provided. If you can gather up all the tools you need for the project from our C libraries then it can be quite productive.

    Yes I agree, Andy did a bang up job. SimpleTools and SimpleText are very nice tools to have, but in reality, I was referring to code in the outter limits of the internet. There will be many times when you just need code to get the job done, various routines to accomplish various tasks, nothing Propeller specific. There is tons of C code out there :)
  • ercoerco Posts: 20,256
    edited 2015-03-09 12:39
    Phew, from the title I thought you were ditching us (again) Bruce. :) It's good to have you back and I'm glad we're all C-ing eye to eye.

    Now where is your C-controlled figure 8 robot, good sir?
  • idbruceidbruce Posts: 6,197
    edited 2015-03-09 14:45
    erco
    Now where is your C-controlled figure 8 robot, good sir?

    Surely you jest good sir. I am up to my head with the 3D printer project. It is coming along though. Tracy Allen just help me over a MAJOR hurdle. Thank goodness for his assistance.
  • Heater.Heater. Posts: 21,230
    edited 2015-03-09 14:56
    I'm all for C and C++ on the Propeller.

    As a practical matter though one can fit a lot more functionality into a Propeller using Spin. Spin's byte codes are very space efficient.

    Spin is potentially a lot easier to teach beginners than C or C++. Like BASIC in the old days.

    What we need here is working, cool, examples of C programs on the Prop.
  • David BetzDavid Betz Posts: 14,516
    edited 2015-03-09 14:57
    Heater. wrote: »
    I'm all for C and C++ on the Propeller.

    As a practical matter though one can fit a lot more functionality into a Propeller using Spin. Spin's byte codes are very space efficient.

    Spin is potentially a lot easier to teach beginners than C or C++. Like BASIC in the old days.

    What we need here is working, cool, examples of C programs on the Prop.
    And, much as you probably don't want to hear it, you can also fit a lot more functionality in the Propeller using Tachyon Forth. In fact, maybe more than with Spin. :-)
  • Heater.Heater. Posts: 21,230
    edited 2015-03-09 15:05
    David,

    Ouch!
  • idbruceidbruce Posts: 6,197
    edited 2015-03-09 15:09
    What we need here is working, cool, examples of C programs on the Prop.

    I am working on it :)
  • mindrobotsmindrobots Posts: 6,506
    edited 2015-03-09 18:03
    David Betz wrote: »
    And, much as you probably don't want to hear it, you can also fit a lot more functionality in the Propeller using Tachyon Forth. In fact, maybe more than with Spin. :-)

    Picturing Heater. in the famous playground pose with his hands over his ears saying "I can't hear you! I can't hear you!" :O)
  • DavidZemonDavidZemon Posts: 2,973
    edited 2015-03-09 20:02
    Heater. wrote: »
    I'm all for C and C++ on the Propeller.

    As a practical matter though one can fit a lot more functionality into a Propeller using Spin. Spin's byte codes are very space efficient.

    Spin is potentially a lot easier to teach beginners than C or C++. Like BASIC in the old days.

    Doesn't CMM approach Spin's compactness, and run at approximately the same speed? All while providing the option for inline assembly?

    I can't argue the simplicity of the language compared to C/C++. It is much simpler. If had to teach someone to program for the first time, it would not be C or C++. Then again - it also wouldn't be on an embedded system.
    Heater. wrote: »
    What we need here is working, cool, examples of C programs on the Prop.

    x2 on that. I've seen very little in terms of completed C/C++ projects for the Propeller. I don't know if people aren't writing them or aren't sharing them :( . PropWare has demo programs for each module, but I'm guessing you were referring more to real projects than short demos.
  • MicksterMickster Posts: 2,693
    edited 2015-03-10 04:08
    I wanna see PropBASIC developed!

    What is it with all these new-fangled programming languages popping-up everywhere and non of them are as readable as BASIC.

    DOS and a wonderful programming language called QuickBASIC enabled this know-nothing programmer to become self employed in the mid-eighties and I have kicked competitor's butt ever since. While my competitors were spending time compiling/linking/burning EPROMs, I had this wonderful threaded p-code interpreter which let me make changes on the fly without having to halt execution of the program. Now, when we are talking process control, this is a HUGE advantage because the process does not need restarting for every code change.

    Nothing out there has impressed me as much, since!

    Still in business and still kicking butt and still using BASIC (B4A for Android programming).

    I keep visiting the forum in the hope that Bean has announced a new PropBasic development :-D
  • Heater.Heater. Posts: 21,230
    edited 2015-03-10 04:27
    SwimDude0614
    If had to teach someone to program for the first time, it would not be C or C++.
    I would have thought that too. However there are millions of Arduino users out there now who were introduced to programming via C++. They seem to get along just fine.
    Then again - it also wouldn't be on an embedded system.
    Why not?

    My first experience of programming was in BASIC. Entered at a teletype and run on a mainframe in a far off city.

    How is that different from talking to an MCU on your desk via a serial link from a terminal on your PC?

    Again beginner programmers get along with that set up just fine with their Arduino's. Not to mention BASIC Stamps before that.

    I would argue that such an "embedded" approach is a good introduction to computing, it removes a ton of abstraction and gets your program directly affecting the real world, flashing that LED or tweaking that servo.
  • idbruceidbruce Posts: 6,197
    edited 2015-03-10 04:28
    Mickster

    I believe Bean stated several weeks ago that it was dead in the water due to something or other, but I could be wrong. Yea, I suppose BASIC would be another good language, with similar support. I never messed around with it, except for a few ports here and there.
  • koehlerkoehler Posts: 598
    edited 2015-03-10 04:49
    Mickster wrote: »
    I wanna see PropBASIC developed!

    Mickster,

    I agree, it a shame Parallax couldn't come to some sort of arrangement with Bean.
    If it was reasonable, Parallax would have almost a complete BASIC that they could add to the more complex C/Forth/Spin.

    There actually seem to be few uCs that can be programmed with BASIC, which is really a shame.
    Yes sure, having line numbers and Goto is just so old school.
    The thing is, those are the training wheels that are just so helpful for the beginner.
    Yes we want to get kids to learn to program, and program with an eye towards 'flow' and structure.
    But the fact is, line numbers and Goto are there to help kids/beginners get out of those situations where they've got themselves stuck.

    Not having those early hand-holds at the early stage probably puts off far more kids from the whole programming thing than not. Because they have to rip half their program apart and restructure it to avoid whatever problem they encountered.
    Takes a certain kind of masochism to persevere to a future point where they've made their mistakes, realized Gotos are as much a hindrance as a help, and are able to then forge ahead to a more structured language/environment.

    Not too mention how many schools sit around looking at the options available for computer labs, and figuring out who wants to learn a language to teach it, or more properly, who is going to be directed to learn it. Being one of the few options which has BASIC as an approved language might be a deciding factor in more than a few instances.
  • VonSzarvasVonSzarvas Posts: 3,450
    edited 2015-03-10 05:17
    Mickster wrote: »
    I wanna see PropBASIC developed!

    Hey Mickster & Koehler !

    Ken let some PropBASIC thoughts slip recently on another thread, so it would seem all is not completely lost. We might need to keep a spare eye on the forum for future news!

    http://forums.parallax.com/showthread.php/159928-Is-it-time-to-re-examine-the-P2-requirements?p=1318706&viewfull=1#post1318706


    Yours sincerely, another PropBASIC fan !
  • DavidZemonDavidZemon Posts: 2,973
    edited 2015-03-10 06:01
    Heater. wrote: »
    SwimDude0614

    I would have thought that too. However there are millions of Arduino users out there now who were introduced to programming via C++. They seem to get along just fine.

    Why not?

    My first experience of programming was in BASIC. Entered at a teletype and run on a mainframe in a far off city.

    How is that different from talking to an MCU on your desk via a serial link from a terminal on your PC?

    Again beginner programmers get along with that set up just fine with their Arduino's. Not to mention BASIC Stamps before that.

    I would argue that such an "embedded" approach is a good introduction to computing, it removes a ton of abstraction and gets your program directly affecting the real world, flashing that LED or tweaking that servo.

    The Arduino world is a testament to the fact that newbies can learn with C/C++, for sure. But I think they could learn a lot faster by starting with Python on desktop to grapple the basics, then move to an embedded system after they understand the concept of loops, if-statements and functions. Having an easy-to-read interpreted language helps a ton. And having a shell open with which you can type and run your code line-by-line is invaluable to any age programmer, but especially a newbie.

    ~David
  • Heater.Heater. Posts: 21,230
    edited 2015-03-10 06:23
    @koehler

    I don't know about that GOTO thing. My feeling is that if you want to teach "goto style" programming, with flow charts and all, you're better off doing it in assembler. In fact when we were teenagers exposed to programming for the first time after a quick intro with BASIC we were expected to be proficient in assembler at the end of the year as well. Soon after that I started to think that BASIC was a waste of our time, very restricting, we could have been using a real language already instead.

    @SwimDude0614

    I do agree about the Python approach. As you say having that instant feed back of the REPL is very encouraging to a beginner. I think that's why many CS courses used to start out by introducing programming with Scheme. And BASIC of course.

    It need not be Python of course. JavaScript will do as well as things like Scheme and God forbid Forth.

    Of course you can do all that on an embedded system now a days. The Raspeberry Pi for example. Or JavaScript on the tiny Espruino boards: https://www.kickstarter.com/projects/gfw/espruino-pico-javascript-on-a-usb-stick
    or Python on the tiny MicroPython boards http://micropython.org/
  • MicksterMickster Posts: 2,693
    edited 2015-03-10 06:51
    I started using BASIC compilers with QB2. Never ever used a GOTO, nor a line number! Why do so many believe that one must use these in modern BASICs? OTOH, you won't get far is asm without using jmp, will you?

    I need to be productive to pay the bills so I don't fall for the Emperor's new clothes of programming languages (C), I use what gets the job done and remains readable for future maintenance, etc.

    I really, really, really believe that a refined PropBASIC would be a huge success for the Prop. I for one would pay $$$ for such a thing.
  • mindrobotsmindrobots Posts: 6,506
    edited 2015-03-10 06:56
    Look, modern BASIC running directly on a micro-controller (not programmed and compiled on a PC and loaded to the MC) with embedded C functions if you need to expand it by adding some features. Pretty slick considering you can put it on a $4 PIC. Maybe what PBASIC coulda/shoulda been? Not a GOTO or line number in sight!

    The CFUNCTION section is where the binary for the compiled C program goes, the actual C code follows in the comments at the end. You do need to compile the C program with MPLAB to get the binary but once you have that, you can just pass the function around as text.
    'Example of using a DHT-11 Temperature Sensor in M MBasic
    '
    ' V 1.0
    ' 2014-12-04
    ' Peter Mather 
    
    'should work for any valid pin on a 28 or 40 pin processor. 
    
    OPTION DEFAULT integer 
    OPTION EXPLICIT 
    CPU 40 
    DIM FLOAT temperature,humidity 
      dht11(16,temperature,humidity) 
      PRINT "Temperature is ",temperature,"C :  Relative Humidity is ",humidity,"%" 
    END 
    ' 
    FUNCTION getpin(MMpin AS integer,portnum AS integer,pinnum AS integer) 
      CONST  P28$="N/AA00A01B00B01B02B03N/AA02A03B04A04N/AB05B06B07B08B09 N/AN/AB10B11B12B13B14B15N/AN/A" 
       CONST  P40$="B09C06C07C08C09N/AN/AB10B11B12B13A10A07B14B15N/AN/AN/A A00A01B00B01B02B03C00C01C02N/AN/AA02A03A08B04A04A09C03C04C05 N/AN/AB05B06B07B08"
      LOCAL i 
      LOCAL a$ length 3 
      i=(MMpin-1)*3 +1 
      IF (PEEK(word &HBF80F220) AND &HFFFFFFF) = &H6610053 THEN 
        IF MMpin>=1 AND MMpin<=28 THEN 
          a$=MID$(p28$,i,3) 
        ELSE 
          a$="N/A" 
        ENDIF 
      ELSE 
        IF MMpin>=1 AND MMpin<=40 THEN 
          a$=MID$(p40$,i,3) 
        ELSE 
          a$="N/A" 
        ENDIF 
      ENDIF 
      IF a$="N/A" THEN  
         getpin=0 
      ELSE 
         portnum=ASC(LEFT$(a$,1))-65 
         pinnum=VAL(RIGHT$(a$,2)) 
         getpin=1 
      ENDIF 
    END FUNCTION 
    ' 
    SUB dht11(pinnum AS integer,temp AS FLOAT, humi AS FLOAT) 
      LOCAL integer rawdata(41),i,scale,th,tl,hh,hl,ck,myport,mypin 
      PIN(pinnum)=1 
      SETPIN pinnum,DOUT 
      PULSE pinnum,2 '2msec pulse to trigger conversion 
      SETPIN pinnum,DIN 'set the pin to input must be pulled high by resistor 4K7 tested 
      IF getpin(pinnum,myport,mypin) THEN 
        i= DHT11conv(myPort,mypin,rawdata()) 
        IF i=-1 THEN  
          temperature=-1000 
          humidity=-1000 
        ELSE 
          th=0 
          tl=0 
          hh=0 
          hl=0 
          ck=0 
          scale=rawdata(0) \2 'get the reported length of an 40usec pulse 
          FOR i=0 TO 7  
            IF rawdata(i+1)>scale THEN hh=hh OR (1<<(7-i)) 
            IF rawdata(i+9)>scale THEN  hl=hl OR (1<<(7-i)) 
            IF rawdata(i+17)>scale THEN  th=th OR (1<<(7-i)) 
            IF rawdata(i+25)>scale THEN  tl=tl OR (1<<(7-i)) 
            IF rawdata(i+33)>scale THEN  ck=ck OR (1<<(7-i)) 
          NEXT i 
          IF ((hh+hl+th+tl) AND &HFF)<>ck THEN 
            temperature=-1000 
            humidity=-1000 
          ELSE 
            i=1 
            IF th AND &H80 THEN i=-1 
            th=th AND &H7F 
            temp=(th+tl/10)*i 
            humi=hh+hl/10 
          ENDIF 
        ENDIF 
      ELSE 
        temperature=-1000 
        humidity=-1000 
      ENDIF    
    END SUB 
    ' 
    CFUNCTION dht11conv 
         00000000 
         8c830000 24040001 10640005 24040002 10640006 3c08bf88 10000005 25086020  
         3c08bf88 10000002 25086120 25086220 34048030 3c03bf80 ac640600 8ca30000  
         24070001 00673804 3c05bf80 3404ea60 8d030000 00671824 10600005 3c03bf80  
         8ca30610 0064182b 1460fff9 3c03bf80 8c640610 3403ea60 0083182b 2404ffff  
         10600040 2405ffff 3c03bf80 34048010 ac640600 ac600610 3c05bf80 34049c40  
         8d030000 00671824 14600005 3c03bf80 8ca30610 0064182b 1460fff9 3c03bf80  
         8c640610 34039c40 0083182b 2404ffff 1060002c 2405ffff 3c03bf80 ac600610  
         34099c40 10000022 240c0029 8d0a0000 01475024 11400005 00000000 8c6a0610  
         0149502b 1540fff9 00000000 8c6b0610 000250c0 00ca5021 ad4b0000 ad400004  
         8c6a0610 0149502b 11400003 00000000 ac600610 24420001 8d0a0000 01475024  
         15400005 00000000 8c6a0610 0149502b 1540fff9 00000000 8c6a0610 0149502b  
         55400001 ac600610 104c0005 00e02021 8c6a0610 0149502b 1540ffdc 00e02021  
         00002821 00801021 03e00008 00a01821  
    END CFUNCTION 
    
    
    'long long dht11conv(long long log[]){
    '    unsigned int i;
    '    #define tmr1con *(volatile unsigned int *)0xbf800600 //timer 1 configuration register
    '    #define tmr1 *(volatile unsigned int *)0xbf800610 //timer 1 counter
    '    #define porta *(volatile unsigned int *)0xbf886020 //port a
    '    tmr1con=0x8030; //turn on with scale 256
    '    i=0;
    '    tmr1=0;
    '    while (((porta&1)==1) && (tmr1<60000)); //wait for low while dht processes
    '    if(tmr1>=60000) return -1;
    '    tmr1con=0x8010; //rescale 8
    '    tmr1=0;
    '    while (((porta&1)==0) && (tmr1<40000)); //wait for the next high
    '    if(tmr1>=40000) return -1;
    '    tmr1=0; //reset the timer
    '    while (tmr1<40000){
    '        while (((porta&1)==1) && (tmr1<40000)); //wait for low
    '        log=tmr1;
    '        if (tmr1<40000){
    '            tmr1=0;
    '            i++;
    '        }
    '        while (((porta&1)==0) && (tmr1<40000)); //wait for the next high
    '        if (tmr1<40000) tmr1=0; //valid pulse so reset timer
    '        if (i==41) break;
    '    }
    '    return i;
    '
    
  • Heater.Heater. Posts: 21,230
    edited 2015-03-10 07:22
    @Mickster,
    Never ever used a GOTO, nor a line number!
    Call yourself a programmer? :)
    Why do so many believe that one must use these in modern BASICs?
    We don't.

    What we believe is that if you are going to use a modern BASIC with all the structured programming goodness of other high level languages you might as well use one of those other high level languages. Then you get the benefits of, a better language, standardization and cross platform support.
    I don't fall for the Emperor's new clothes of programming languages (C)
    Do what? I know BASIC was around about a few years before C. But as we are talking nearly 50 years ago I would hardly call either of them "new clothes".

    @mindrobots,

    In the recent context of this discussion, ease of use for newbies, that embedding compiled code as hex into your source is nuts. Well, it's nuts anyway:)
  • kwinnkwinn Posts: 8,697
    edited 2015-03-10 07:25
    Mickster wrote: »
    I started using BASIC compilers with QB2. Never ever used a GOTO, nor a line number! Why do so many believe that one must use these in modern BASICs? OTOH, you won't get far is asm without using jmp, will you?

    I need to be productive to pay the bills so I don't fall for the Emperor's new clothes of programming languages (C), I use what gets the job done and remains readable for future maintenance, etc.

    I really, really, really believe that a refined PropBASIC would be a huge success for the Prop. I for one would pay $$$ for such a thing.

    I agree. Siemens used a language that reminded me of Basic on a building automation system I worked on 3 or 4 years ago. Very simple modular structure without a truck load of special symbols, brackets, and such, and without line numbers. I had never worked with this system before but it was so straight forward that a couple of hours looking through the code was enough to make some minor changes to the code. A basic written with the same philosophy would be a good starting point for someone getting started with microcontrollers.

    If that Basic was written for the Propeller in a manner that allowed it to assign the standard peripherals (serial, parallel, I2C, SPI, etc) to whatever pin(s) they wanted it could be a great learning tool and useful for many projects. The peripherals would be code that is loaded to one of the remaining cogs by a "start" or "open" statement.
  • DavidZemonDavidZemon Posts: 2,973
    edited 2015-03-10 07:30
    Heater. wrote: »
    It need not be Python of course. JavaScript will do as well as things like Scheme and God forbid Forth.

    Of course you can do all that on an embedded system now a days. The Raspeberry Pi for example. Or JavaScript on the tiny Espruino boards: https://www.kickstarter.com/projects/gfw/espruino-pico-javascript-on-a-usb-stick
    or Python on the tiny MicroPython boards http://micropython.org/

    JavaScript? Ugh. You make me sick. I'd rather program in whitespace than JS - it's more legible!

    I do love the MicroPython board. I got one from the kickstarter campaign and had a blast playing with it for a bit. Unfortunately... just like the Propeller... I have nothing to do with it. And it obviously doesn't need a HAL... so it just sits and collects dust with the rest of my toys.

    Oh, and I don't consider the Pi an embedded system. It runs full-blown Debian with a GUI and everything. The only thing embedded about it is the System-on-chip hardware design, which most programmers aren't even aware of. With that said, I absolutely agree. I quite enjoy teaching to program on this and encouraging students to try out crazy things like "sudo rm -rf /" becase it's so easy to wipe the system clean and do it again! :D
  • MicksterMickster Posts: 2,693
    edited 2015-03-10 07:30
    Heater. wrote: »
    @Mickster,

    Do what? I know BASIC was around about a few years before C. But as we are talking nearly 50 years ago I would hardly call either of them "new clothes".

    http://www.phrases.org.uk/meanings/the-emperors-new-clothes.html
  • mindrobotsmindrobots Posts: 6,506
    edited 2015-03-10 07:33
    Heater. wrote: »
    @mindrobots,

    In the recent context of this discussion, ease of use for newbies, that embedding compiled code as hex into your source is nuts. Well, it's nuts anyway:)

    Haha!! Yes, I can see it now:

    Learning BASIC

    Chapter 1 - Using Variables
    Chapter 2 - Program Control and Functions
    Chapter 3 - Embedding C Programs as extensions to the BASIC language
    Appendix A - BASIC Language Reference
    Appendix B - C Language Reference for Writing Embedded Functions

    If I recall, the CFUNCTION feature was added for slight more advanced users than the newbies! :D
  • Heater.Heater. Posts: 21,230
    edited 2015-03-10 07:48
    SwimDude0614,
    JavaScript? Ugh. You make me sick...
    Whoa, that's a rather extreme reaction.

    JS was only presented there as an example of a language that can be used from a REPL for ease of use by beginners. Legibility seems to be, to a large part, in the eye of the beholder. Perhaps you would prefer the much cleaner syntax Scheme:
     (define (fib n)
      (if (<= n 2)
          1
          (+ (fib (- n 1)) (fib (- n 2)))))
    
    A very fine language used to introduce people to programming for decades.

    As it happens I backed the Espruino kickstarter and got two boards. They are also gathering dust in my toy pile. One of the main reasons I backed it was because the deal was that Gordon Williams would open source his JS engine if the target was met. I was curious about getting that engine running on the P2 at some point.

    I hoped my coworker, a Python head, would get the MicroPython for us to play with a bit. Sadly that never happened.
  • 4x5n4x5n Posts: 745
    edited 2015-03-10 07:55
    Heater. wrote: »
    @koehler

    I don't know about that GOTO thing. My feeling is that if you want to teach "goto style" programming, with flow charts and all, you're better off doing it in assembler. In fact when we were teenagers exposed to programming for the first time after a quick intro with BASIC we were expected to be proficient in assembler at the end of the year as well. Soon after that I started to think that BASIC was a waste of our time, very restricting, we could have been using a real language already instead.

    @SwimDude0614

    I do agree about the Python approach. As you say having that instant feed back of the REPL is very encouraging to a beginner. I think that's why many CS courses used to start out by introducing programming with Scheme. And BASIC of course.

    It need not be Python of course. JavaScript will do as well as things like Scheme and God forbid Forth.

    Of course you can do all that on an embedded system now a days. The Raspeberry Pi for example. Or JavaScript on the tiny Espruino boards: https://www.kickstarter.com/projects/gfw/espruino-pico-javascript-on-a-usb-stick
    or Python on the tiny MicroPython boards http://micropython.org/

    Perl is a nice "starter" language!! :) (ducking, bobbing and weaving!)
  • Heater.Heater. Posts: 21,230
    edited 2015-03-10 07:56
    Mickster,

    I'm fully aware of the meaning of "The emperor's new clothes". We can take it as "The label given to any fictional item that viewers have been induced into believing as real.."

    So taken in that light your statement...
    I need to be productive to pay the bills so I don't fall for the Emperor's new clothes of programming languages (C)
    ...is very confusing to me. Are you saying that the C language we use everyday does not exist? That's absurd.
  • 4x5n4x5n Posts: 745
    edited 2015-03-10 07:59
    Mickster wrote: »
    I started using BASIC compilers with QB2. Never ever used a GOTO, nor a line number! Why do so many believe that one must use these in modern BASICs? OTOH, you won't get far is asm without using jmp, will you?

    I need to be productive to pay the bills so I don't fall for the Emperor's new clothes of programming languages (C), I use what gets the job done and remains readable for future maintenance, etc.

    I really, really, really believe that a refined PropBASIC would be a huge success for the Prop. I for one would pay $$$ for such a thing.

    Emperor's new clothes of programming languages?? You do realize that by computing standards "C" is positively ancient, right? While it's not the best language for all applications or situations the popularity and longevity says a lot of good about it!
  • Heater.Heater. Posts: 21,230
    edited 2015-03-10 08:01
    mindrobots,
    If I recall, the CFUNCTION feature was added for slight more advanced users than the newbies!
    No doubt true.

    Back in the day we did a similar thing by using BASIC POKE commands to get binary code into the machine. Effectively BASIC was just the means of loading our programs.

    Well, in that case, why not just use C or whatever compiled language? The BASIC thing is just getting in the way.
  • Heater.Heater. Posts: 21,230
    edited 2015-03-10 08:02
    4x5n,
    Perl is a nice "starter" language!!
    I see your game. I've just bitten a hole in my lip. I won't fall for it :)
Sign In or Register to comment.