If you got to pick some new commands for TI-BASIC, what would they be? I am very interested to hear other people’s opinions on what new features in TI-OS would be considered the most useful. Who knows, maybe TI might even take a leaf from our book when they make the next version (however unlikely it is that they actually listen to the community). Either way, it should be fun to think about. Also, if you like, write a small piece of code that would essentially emulate your command, as it would give more perspective to the purpose it would serve.
I would like a command to convert numbers to strings so we don't have to use routines
The CE has two of these. Why two, I don’t know, because they have the same token size and one is literally better in every other way, including run speed (as far as my personal testing goes). I agree that this would be useful for the monochrome calcs, however.
I'm assuming we are talking about Z80 calculators. Basically, I want the stuff from 68k Basic ported to Z80 Basic, such as local variables and try blocks.
4920616D204261746D616E
Not so much a command, but string multiplication:
2*"A" = "AA"
3*"ABC" = "ABCABCABC"
We've got concatenation, so this would be a natural extension.
The solution to a complex problem is often a simple answer.
Lots of people talk about how awesome Python is and I don't know why. I'd much rather just do this with methods. If the division operator was also supported then I might like it, but performing the inverse of string multiplication doesn't seem possible.
4920616D204261746D616E
That's because string division isn't often implemented
I know that it isn't, and I'm not entirely sure it could be implemented in all cases since dividing two integers can leave you with a non-integer. Do you know of any languages that have String division, I was thinking it wouldn't exist at all? It also seems like this violates no. 8 of The Zen of Python, "Special cases aren't special enough to break the rules" since you can't perform the inverse using the division operator, making string multiplication a special case which is breaking the rules.
I don't remember all the reasons for why people like Python, but what I do remember is that it supposedly has convenient syntax, nice abstractions, and lots of namespaces(no. 19 of The Zen of Python). I haven't had a chance to go deep into Python yet, but I might get used to its conventions and find them useful.
4920616D204261746D616E
This makes me feel really guilty that I started learning Python for the first time literally an hour before you posted this :) And I really like it, too, because it is unbelievably easy to learn and I already know enough about it to start working on the menu for the Pi Calculator project I have been doing. Python, I have noticed, is a great language for beginners like me (it is quite similar to TI-BASIC) because it makes sense, and everything is made to be simple. It has pretty much everything that TI-BASIC doesn’t. I still love TI-BASIC, but I am starting to gain a fondness for Python as well, and in less than a day in it has already earned my recommendation.
No need to feel guilty about anything. After TI-Basic, Python was my first "real" programming language. I've been using it for about 4 years now and I love everything about, which apparently surprises a lot of people. Most people are introduced to something like Java or a C variant as their first language, and so often draw a bit of contempt with some of Python's techniques and conventions (most often functional/necessary indentation and strange class implementation). As someone on the other side of the coin, I'm in a Java class right now and my experience with Python has made me really dislike much of Java's design (I'm looking at you, semicolons).
The solution to a complex problem is often a simple answer.
Java and python both have their pros and their cons, as does any programming language. I personally prefer java, although If I had to choose a language of choice, I would probably choose a variant of C such as C++ or C#, simply because they can be used on a wider variety of systems.
I don't mind semicolons at all, it's the features of a language that will make or break it in my opinion. After all, There are only two kinds of languages: the ones people complain about and the ones nobody uses. If you really hated semicolons that much you could use text substitutions or a preprocessor to let you write code without them, but even if you had the knowledge you couldn't modify the JVM to include features you want because any code you wrote for it would now be incompatible with the JVMs everyone else is using.
In Java I couldn't wrap my head around overriding methods, abstract classes, inheritance, polymorphism, etc. I could write code with those things, but I couldn't figure out why on Earth I would want to use the the things I mentioned. I asked on Reddit, and Stack Overflow but I only received 'dog inherits animal' examples. If anyone here could help me understand when and why to use them, I'd appreciate it a lot.
CloudVariable How did my post make you feel guilty? I think it's great you're taking the time to learn something new. A few months ago I tried learning Python, but focusing is extremely hard for me whether it's a written or video tutorial so I stopped. Recently, I was evaluated about this, and the results showed among other things that I was in the zeroth percentile of their attention scale.
P.S. What tutorial are you using to learn Python? Automate the Boring Stuff?
4920616D204261746D616E
I could try to explain when you would want to use some of them, but direct questions related to java are more suited to DM's rather than this forum. Feel free to message me with a specific question or questions on what exactly you want to know.
Just joking around. It didn’t make me feel guilty :) Just a funny coincidence for you to talk about it seeing as my post is what led me to begin Python. I just don’t want to feel like I am deserting TI-BASIC or anything because of Python, although I know it’s rather dull of me to think so strongly about it in that light. I have a very difficult time with paying attention to things too, and computers stress me out. I hate file locations and such, they are incredibly difficult for me to navigate around. I find that the documentation provided by Python helps me learn the best, so it might be a good place to look if you are interested in learning more about it.
User-definable functions or procedures that take arbitrary numbers of arguments. Writing large programs is a monumental effort without the ability to do this; it's the single largest syntactic restriction on the power of TI-BASIC.
That said, it would be nice if they fixed the CE to eliminate waitstates so it runs 8x faster, like it originally should have.
Maybe something along the lines of a clock function. My clock routine that I use is more somewhat unsimplifed. And to adapt to my projects needs is a hard thought process.
I was thinking he meant a millisecond timer or better……
I know I would get some use out of it, if I ever tried making a game on the calculator. I particularly don't like that checkTmr(startTmr is inconsistent, even though in any real code you write it probably won't matter. For example when I run:
0→Z
For(X,1,10000
checkTmr(startTmr)+Z→Z
End
Disp Z // number of times Z increased
Z is somewhere between 60 and 80, which means Z incremented less than 1% of time but it's still pretty annoying.
……Obviously, that isn't the case though.
4920616D204261746D616E
I also think that better timing accuracy is needed. In February I will be releasing several dozen sheets of research TI BASIC I have been doing this year, most of which is the timing of variables on the +CE. It took me a very long time to get satisfactorily accurate timing data for command speed tests, because I had to recall each variable over 1 million times in order for the error time to collect. I ended up doing 10 trials of this sort for each of the variables I tested, which include several of each type of variable. The data is very interesting, and it was consistent over every TI-84+CE I tested it on, which amounted to 3. One neat result, which was my motivation for doing this, was that this data experimentally proves that the sequential equation variable n is slower than the finance variable n, which is the fastest user-accessible variable that I have data on. Just though that this would be a good place to spread the word about my research, as it is related to the subject of precise variable timing. Once I am finished with the graphs and such, probably by February, I will put them up on the forums.
It would be nice if we could output colored text on the home screen, OR have text on the graph screen without a background (I'm looking at you yellow and white)
🧟Initiating Project Horde 🧟
Yeah… that would be nice. Especially if you are trying to make a game, and the background just completely ruins the text and effect. :(
But, I do understand why TI put the grey background behind the text, for readability.
Hewwo, my name is Achak Claw. I was formerly BioHazard.
There is a nice assembly program for putting colored text on the homescreen, but Basic support would be great to have.
As for dealing with the background on the graphscreen, I am unaware of a fix.
The solution to a complex problem is often a simple answer.
Sadly :( I would want something along the lines of:
Output(1,1,"HI",BLUE
With the syntax as the normal output( with another condition on the end.
And for the graph screen a condition for Text, that if its a 0 there is no background.
🧟Initiating Project Horde 🧟