Wikipedia:Reference desk/Archives/Computing/2019 November 6

Computing desk
< November 5 << Oct | November | Dec >> November 7 >
Welcome to the Wikipedia Computing Reference Desk Archives
The page you are currently viewing is a transcluded archive page. While you can leave answers for any questions shown below, please ask new questions on one of the current reference desk pages.


November 6

edit

Java on TI-84 Plus CE

edit

I own a Texas Instruments TI-84 Plus CE. It comes with Ti-BASIC preinstalled, but the only language I know well enough to program with is Java. Is there any way to program with Java on this type of calculator? Is there any software I need to install first? --PuzzledvegetableIs it teatime already? 02:51, 6 November 2019 (UTC)[reply]

Puzzledvegetable, As far as I'm aware, No. Not unless you write a JVM for it yourself. MoonyTheDwarf (Braden N.) (talk) 03:21, 6 November 2019 (UTC)[reply]
I doubt it. TI-BASIC says that it can use assembler and C programs can be compiled on a computer and then transferred. Bubba73 You talkin' to me? 03:24, 6 November 2019 (UTC)[reply]
As the name implies, BASIC is, well, basic. It's not hard to learn. SinisterLefty (talk) 03:45, 6 November 2019 (UTC)[reply]


It is important for the novice programmer to realize the strengths and limitations of the computer hardware. Although a modern Texas Instruments calculator does contain a powerful and programmable CPU, it is unlikely that it can compete with a workstation-class system, or even a mobile-phone. The calculator device simply is not designed for running extraordinarily complex application-software, and it will be limited in terms of performance and user-experience. A highly-skilled enthusiast can do some amazing things with a TI system, including immersive interactive video-games and productivity software - but ultimately, this is a utility device. The people who designed it - and the programmable environment on it - have optimized and streamlined it for making calculator-type applications.
If you seek to program useful application-software with broad appeal to lots of users, a laptop-computer or a mobile-phone might be a better hardware platform. If you're simply seeking to learn about computer systems, the TI is a great chance to work with a fairly-simple device - specifically, a device whose bits and bytes are intentionally made available to you for learning-purposes. But that means learning its system, its limitations, and capabilities.
Somewhere along the way, I bookmarked Ted's Math World: Programming with a 4-Function Calculator. To the new student of computing, this stuff probably seems pretty dull - but to the aspiring mathematician with a true knack for computers, this website will make you think: exactly what does it mean to perform computation, and how is this different from performing calculation? How can we do computation on a 4-function calculator that does not even provide program-storage or even a "programming language"? These questions turn out to have profound theoretical answers that are very important concepts that should be learned by the aspiring programmer.
  • If you want to program in the Java programming language, there is probably no useful reason to target a TI-84. Better (and cheaper) computers are available that can run Java programs - for example, a Raspberry Pi can do that, and costs a lot less than a TI-84! Or, you can program in Java for your desktop- or laptop- computer, and for many modern telephones and tablets. This will be much more productive and you will use standard tools.
  • If you want to program a TI-84, it is best to start with TI-BASIC, because that is the best-supported tool for this specific device, and it is designed for educational purposes - so there are lots of tutorials.
  • If you want to learn enough about programming so that some day you may program in Java on a TI-84, then beware: you will need to learn a lot of very difficult skills that normally take many years to master. You will need to "go off-chart," because although what you seek is theoretically possible, it isn't a well-known or easy task and it can't be done using easy-to-understand, easily-available tools. To do abnormal, undocumented procedures using abnormal tools, you will need to learn much more about Java, and about the TI-84: far more than the knowledge that is known by the "typical expert programmer" - and therefore, you will first need to become a "typical expert programmer," which is usually a multi-year effort.
    • If you are really interested, the first places to start will be a basic book on computer system theory. I recommend Patt & Patel's Introduction to Computing Systems book, which is fun reading for the whole family. I keep a hardcover copy on my shelf, next to my bedside, for easy reference.
    • You will also want a copy of the TI-84 hardware documentation. Start with the basic guidebook. You'll want to be familiar with all of it, and by the time you are done, you'll surely have the verbatim text of Chapter 19 memorized. I say again: making Java run on a small calculator is an "enthusiast" task for the expert-programmer: it is not for the faint of heart and certainly not for a novice programmer.
    • You'll want, need, and require, and memorize, one of the Java Virtual Machine specifications. Here is one from Oracle, who now manage the Java language and its specification: the JVM SE 7 virtual machine specification; and you'll almost certainly be working out of the OpenJDK fork.
So in summary: there is no easy way to do what you seek. It is going to be hard, and by the time you have completed learning all the pre-required skills, you will probably conclude that there is no benefit to doing the rest of the work; but the process of learning will give you a lot of deep technical knowledge that will help you in future engineering efforts that relate to the design and construction of computer systems.
Nimur (talk) 15:27, 6 November 2019 (UTC)[reply]
I agree with just about everything you said. However, his reason for choosing a TI-84 is that he already owns one, and his reason for choosing Java is that he already knows it. But, I would see this as an opportunity to learn BASIC. SinisterLefty (talk) 16:52, 6 November 2019 (UTC)[reply]
I appreciate that you took the time to answer my question as thoroughly as you did. As of now, Java is the only language I know because I only started coding about a month and a half ago, so most of what you wrote is a bit above my pay grade. I was interested in the TI-84 because I already own one for math class, and the little I know about the JVM and how it works suggested that I might be able to pull this off. Clearly, there is more to this than I anticipated. --PuzzledvegetableIs it teatime already? 18:16, 6 November 2019 (UTC)[reply]
Sure - it's a perfectly good question to ask! I wouldn't say it's impossible - or even unreasonable - only that it's much harder than you might have expected!
When you're still new, you haven't got experience yet. Once you have experience, it doesn't mean you'll automatically know how to do everything - but you will have a better idea about if a task will take an hour, or a day, or a year, or longer. In this case, your idea (to program in Java on the calculator) is a perfectly possible task - but it's not one that you will make much progress on in just an hour, or a day, or even a month - so the best advice I can give is that you better know what you're biting off before you even start! There might be a better way to do what you really want to do, if you just pick the right tools. Nimur (talk) 21:30, 6 November 2019 (UTC)[reply]

Just putting it out there, but if you want to improve your language skills cheaply, you can execute JavaScript with any modern browser and an editor (like Notepad). It's much closer to Java than BASIC (not nearly as close as the name might suggest, though), and will allow you to continue to use an object-oriented language (though one with a completely different object model from Java). If you were going to use the TI-84 because you already owned one, just THINK of all the browsers you have access to — and computers are so much easier to type on than calculators! ubiquity (talk) 22:03, 6 November 2019 (UTC)[reply]

It bugs me a little that even though that thing is bigger than a smartphone and I paid good money for it, it is still extremely limited. I understand why we can't use phones on tests, but why do the manufacturers have to purposely handicap the calculators? I could get a used tablet for the same price, and that would have way more functionality. --PuzzledvegetableIs it teatime already? 23:28, 6 November 2019 (UTC)[reply]
Puzzledvegetable, Profit margins, and regulations.
For example, you never see a calculator with a QWERTY keyboard because it'd never get approved for usage on the SAT and ACT. MoonyTheDwarf (Braden N.) (talk) 23:30, 6 November 2019 (UTC)[reply]
They do allow the TI-Nspire series which has a keypad, but it's not QWERTY. I'm not sure why the order of the letters makes a difference, but they're vary particular that "You are not allowed to use ... Models that have a computer-style (QWERTY) keypad, pen-input, or stylus." [1] --PuzzledvegetableIs it teatime already? 00:28, 7 November 2019 (UTC)[reply]
The calculator's chief value comes from its "ecosystem," not its compute-capability. Most of this "ecosystem" is probably invisible to you as an individual student, so let's try to illustrate where this value comes from.
This specific model, and others like it, have been certified by testing companies and government educational committees. Research has evaluated the best way to use this model with these features to design and teach school classes at appropriate difficulty-levels. Textbooks exist that contain explanations and homework problems that can be solved using this type of calculator. Teachers can find books, receive training courses, and get help with this type of calculator. Standardized tests have specified the rules so that this type of device is used: this makes sure that some students aren't getting unfair advantages on certain tests simply because they can afford a different type of device. Research scientists have studied the effect of this type of calculator on how well students learn and perform in school. Visually, this type of calculator looks distinctive - no QWERTY keyboard! - so a test-proctor can quickly see whether any student is sneaking in unauthorized types of device on a test.
And this might seem strange to call a benefit - but the TI models don't change very much every single year - so we can use the same textbooks, teachers, and testing methodology for next year's students.
Here is a statement from the American National Council of Teachers of Mathematics: Strategic Use of Technology... Basically, we all want to use technology to educate students - but we also know that students actually learn better when we are very thoughtful and careful about what type of technology we encourage them to use in the classroom. Sometimes we make choices that work best on average even if a small percentage of students might do better with other methods.
All of these things add value to the device in a way that is difficult to expressly summarize - and if you're only looking at the machine's software or hardware performance "spec," you're not comparing the part that carries the real economic value.
Although it is true that somebody could curate an educational ecosystem for a more powerful type of computer, nobody has done that as well as Texas Instruments - and that's why their retail prices on calculators are so high compared to other electronic devices. Most other companies that have tried to sell educational computers have not been as widely successful, even if their devices seemed superficially better. For example, have a look at the really noble efforts like the KDE Education Project - which provides some amazing zero cost software that you could run on almost any computer to teach science and math. KmPlot can do just about everything your graphing calculator can do, only faster and better and more accurately and for zero dollars. This free software is amazing to me - but most American teachers don't use KDE-Edu - don't even know it even exists - mostly because they can't find training, textbooks, tech-support, and community. Even if we wanted schools and teachers to use free stuff, somebody would have to pay for the training and set-up. All this "free" stuff can be a lot more expensive than it seems.
So, that's why TI can charge over a hundred dollars for a toy computer: the value isn't only in the machine, but also in who is using it. If it didn't make real, solid, economic sense, then people would stop buying them, and the retail price on these calculators would start dropping.
By the time you hit the university-level math and computer classes, you will very probably progress to using more specialized computer hardware and software. Some will be zero- or low-cost; some will be expensive; but that will be a very different environment and you will be working with a different tier of specialized teachers who can make more personalized decisions about the technology they want to incorporate.
Talk to your math and science teachers about their favorite calculators, because you might be surprised to find that they've thought a lot about it!
Nimur (talk) 14:26, 7 November 2019 (UTC)[reply]
This explains something I had been wondering about, why people continue to buy expensive calculators when an app on a cellphone can do just as much. It's apparently because the cell phone isn't allowed in tests, when a calculator is. SinisterLefty (talk) 14:43, 7 November 2019 (UTC)[reply]
Quite to the contrary, your summary reduces multiple complicated motivating factors to such an absurd degree that I would characterize your conclusion as "wrong." Test-taking is only one among the many purposes for the calculator, and many educators will readily admit that testing is of prettty low importance compared to the rest of the educational process - that's what is disparagingly called "teaching to the test." When used properly, a calculator does a lot more than boost a student's test score.
To put it in sharp focus: in the United States, many more students purchase calculators than the number who actually sit for the big standardized test examinations like the AP or SAT examinations. Here are archived statistics from College Board, the institution that administers the AP and SAT tests. If you want to count calculator sales, have a look at the data from TI - the calculators division is bringing in a half-billion US dollars of annual revenue. This might be a tiny number for a huge conglomerate like TI - or even for a consumer electronics company - but for a calculator company, that indicates a pretty stunning number of unit sales per year. A lot of well-educated mathematical-minded people like the kit enough to buy it. Even if they aren't taking tests. Even if they can afford other categories of compute hardware. Even if they aren't formally a student. The real hot-shot mathematicians don't stop analysing statistics the day after their tests are over, because the real hot-shot mathematicians know that calculations, statistics, and graphs have real-world economic utility.
Nimur (talk) 17:24, 8 November 2019 (UTC)[reply]
Well of course many people continue doing complex math for their jobs, etc., but this can usually be done on a PC. For those who need the ability to do so in a portable manner, they might already have a laptop, and they almost certainly have a smart phone capable of doing such math, with the proper app installed. Myself, I use basic calculators all the time, but I can't see paying for a graphing calculator, as I would do that on my PC. I have no need for portable complex math devices. So, what explains the sales beyond students, then ? I suspect it's habit, both when former students are accustomed to using one, and when people who used such calculators for work, before less expensive alternatives were available, continue to use them out of habit. Then there's a vanishingly small group with no access to even a smart phone. They could buy one for around the same price as a fancy calculator, but maybe they don't like smart phones (over privacy concerns, etc.). SinisterLefty (talk) 01:50, 9 November 2019 (UTC)[reply]
I probably fall into the category of people who began using TI calculators for class (as smart phones weren't even an idea yet) and have kept on because of habit; that said, every time I try and download an app, it becomes an exercise in circumventing the adware/other crap that seems to comes with all of them. Apps also want to bring you into their ecosystem, when I really just want a stand-alone application. OldTimeNESter (talk) 20:17, 11 November 2019 (UTC)[reply]
You definitely need to look for apps that say they have no ads or "freemium" options. I don't know offhand about scientific calculator apps, but my take is that there are so many apps for smart phones that you can generally find some decent ones for whatever you want. From the list of those apps with no ads or fremium options, look for the highest ratings and read the reviews and description before downloading. You would do the same before buying an expensive calculator, wouldn't you ? SinisterLefty (talk) 21:06, 11 November 2019 (UTC)[reply]
Numworks app is a nice option. MoonyTheDwarf (Braden N.) (talk) 21:07, 11 November 2019 (UTC)[reply]

Is AVX-512 under some form of patent/copyright/etc?

edit

Or is it more likely that AMD is simply choosing not to implement it? --MoonyTheDwarf (Braden N.) (talk) 23:37, 6 November 2019 (UTC)[reply]

It takes a very long time to develop CPUs. Intel developed AVX-512 in house, so they've had longer to work on it. AMD's Zen 2 was released July 2019 with CVX2 expanded to 256 bits. If AMD deems it worthwhile, they may expand it to 512 bits in a later release. They won't likely call it AVX-512. They will say AVX2 (or AVX3) expanded to 512 bits. 135.84.167.41 (talk) 15:53, 7 November 2019 (UTC)[reply]
I am aware of the time. Thank you for the explanation. (As of now, I don't think AVX-512 is worth it at all, due to the massive clock speed drop it incurs.) MoonyTheDwarf (Braden N.) (talk) 15:54, 7 November 2019 (UTC)[reply]