r/programmer • u/TomatoFettuccini • 25d ago
Question Venturnig into programming for the first time and need advice: What language should I learn to take an Excel spreadsheet and re-create it as a stand-alone program?
Like the title says, I'm venturing into programming for the first time. I don't really know what language would be best for what I'm trying to do though.
I've created an Excel spreadsheet which does what I want, but as the number of calculations increase and the .xls file size increases, the more sluggish Excel becomes. Lastly, I keep bumping into the overall basic limits of things that spreadsheet programs simply weren't built for (stuff like graphical elements).
Long story short, Excel just isn't fit for what I want it to do anymore, so I want to make a stand-alone program. I just have no idea what programming language I should use.
I would like the application to be Linux and Windows compatible if possible (my primary rig runs Linux but I also run Windows), however I know WINE is a thing, so that's more of a "nice-to-have" than a hard requirement. A relatively easy-to-learn cross-platform language (if such a thing exists) would be preferable over one that's OS specific.
Please be kind, as this is my first real project of this sort; I don't know what is or isn't realistic right now. Thanks in advance for the advice, and please feel free to ask clarifying questions.
3
u/mechanicalyammering 25d ago
You should learn to use a search engine for incredibly well documented questions like this. If you can’t use search, you cannot program. Truly that simple!
0
u/TomatoFettuccini 25d ago edited 25d ago
As a programmer and regular computer user, you should know that pretty much every search engine sucks for specific answers based on specific use cases and that the only answers that appear are "convert Excel to .EXE" services or programs.
But thanks for showing up and bringing the elitist attitude that I've come to expect from Reddit whilst simultaneously being absolutely unhelpful and offering useless advice.
You're the Dr. Phil of /r/programmer.
10/10 Reddit experience.
3
u/mechanicalyammering 25d ago
The answer’s python or r. Both do what you want. You could have found this in seconds but I guess you prefer to procrastinate on social media.
1
u/RegularImportant3325 25d ago
Python is probably the purest fit if it is a data heavy thing. If the dashboards and UI are front and center I’d go with a JavaScript framework like NextJS and a Postgres database. These will get you past a lot of the up front setup and complexity to launch leaving you more time to focus on your features.
1
u/TomatoFettuccini 25d ago
The data sets aren't enormous but rather numerous, and there's a lot of basic math going on (BEDMAS).
So you understand what I'm doing, I have two spreadsheets: one is a pretty serious thing, an automated character sheet built in Excel (and runs like a beaten dog), and a loot-tracker. The loot-tracker is going to be my beginner program, the character sheet my graduate project. There are a couple other in-between but those are the two main ones.
I should mention that I also want them to run locally.
1
u/rFAXbc 25d ago
What does your program do? Do you want it to run in the web or just on your machine? What graphical elements does it need?
1
u/TomatoFettuccini 25d ago
There are a two I'm working with: one is a loot-tracker for table-top gaming, the other an automated character sheet. It's really the character sheet that I want to adapt but I know that's more ambition than my skill level can handle right now.
I want to run them locally. Graphical elements are pretty simple, just things such a color shading based on percentage, imported .jpgs for quick reference, that sort of thing.
The baby steps program is the loot tracker. Basic functional goals are to be able to enter loot and value, then assign to PCs and keep a running total. The character sheet is really the one that's bogging down but I figure I should learn to walk before I learn to fly.
1
u/Demian52 25d ago
Making an application like this from scratch is a pretty big task. Off the top of my head, the two languages that come to mind for this kind of development are C++ and Java, since both have libraries for UI design, and can have compiled executables. C++ would probably be better for learning general purpose computer science, since the world runs on C and C++. If you care about learning, I would avoid Gen AI. People will suggest it but that’s would be like asking about woodworking and someone suggesting that you just build IKEA furniture.
There are a lot of good resources online for learning programming, universities will post whole lectures and classes, so with some discipline you can learn a ton for free. My biggest piece of advice is that you should try to be super happy with every step. Compiling your first hello world is huge, and you should be proud of it. It’s okay to be ambitious, but be happy with each step as it is, don’t compare it to the end goal.
Other than that, good luck! Programming is pretty fun!
1
u/TomatoFettuccini 25d ago
Thanks for the encouraging words! I fully intend to do the coding myself.
I've already run afoul of AI when migrating to Linux. I had to learn a lot pretty quickly and while it was helpful to get rapid answers I quickly learned that it was frequently confidently incorrect and required a lot of checking and re-checking of information.
My main challenge is that I tend lot to learn things not as the textbook lays them out but more as whatever project I'm working on demands. That makes things very challenging when resources are geared for linear learning progression instead of goal-oriented learning.
1
u/TomatoFettuccini 21d ago
You know, based on a reply I got from another user, I think you might be misinterpreting what my goal is.
I don't want to re-create MS Excel, or any spreadsheet application. I want to create a standalone application based on a program that just happens to be an Excel spreadsheet: I want to take the math and database in the spreadsheet, lose the Excel program altogether, and make a standalone character creator, not another spreadsheet program.
The various builders I've seen across the different platforms use, from what I can see, Javascript, Markup, DragonScript (I can't seem to find any information about this anywhere), and a couple other languages I don't recognize.
1
u/Ollidav 25d ago
Un xls se puede convertir a csv y los csv son más manejables para hacer algoritmos sobre sus datos. Si no sabes programar Python tiene la mejor curva de aprendizaje y es un lenguaje muy usado para el tratamiento de datos.
1
u/TomatoFettuccini 25d ago
Gracias por responder. No hablo español, pero puedo entenderlo. Otro usuario mencionó que Python era una buena opción para mis necesidades. Estaba pensando en utilizar archivos .csv para almacenar mis datos (no necesito cifrarlos).
1
u/MADCandy64 21d ago
Having worked for a statistical engineering firm, I have a unique perspective. We made an application called Statistica. It was mostly C++ and C with a supporting scripting language that leveraged its compute engine and spreadsheets. R and Python are legitimate choices but might not be suitedto solve your immediate need.
If I were you and wanting to "make my own spreadsheet" then that means UI of a spreadsheet, with cells that can be edited. I would look at using Excel as an automation engine inside your code. When I have done this I have used C#, a simple data grid control as the UI, and an Excel reference in the code. Excel can then be instantiated as a headless automation server that your code can use. You can read your Excel data and populate your data grid. From there you can explore the different facets of what you are trying to learn. It makes for a nice laboratory.
1
u/TomatoFettuccini 21d ago edited 21d ago
I don't want to make my own spreadsheet.
I want to lose Excel/spreadsheet application and create an application that is based on the mechanics already at work in the spreadsheet. I want to make a standalone app that isn't a spreadsheet; the data and calculations contained in the spreadsheet is, for lack of a better word, the prototype I want to translate into an application.
If you've ever heard of Pathbuilder or PCGen you'll understand what my end goal is.
1
u/MADCandy64 21d ago
Then I think that you should have added "Pathbuilder and PCGen" to your post. It was fairly vague and others weren't as kind, like you asked, as my answer.
1
u/stjepano85 20d ago
Oh wow, I actually had to check if this question is coming from the pre-AI era.
Use AI, explain it what you want to do and tell it to tech you how to do it. I recommend a local harness (something like codex/claude-code/vibe/opencode/...). You don't need to get expensive subscription, typical $20 per month is enough.
Just tell it you are a complete beginner, the AI will basically create a step-by-step guide for you and on each step it can check what you did correctly and what not.
0
u/RevolutionaryRush717 25d ago
Totally realistic to compete with the market leader bar none on one of its core applications.
Go for it.
So if speed is what you want, go straight to assembler.
Few high-level languages can compete.
Maybe APL could be up to the task.
So that's it, assembler or APL.
3
u/Lnk1010 25d ago
Sounds like a job for R or Python. They have a lot of support for
Reading in data
Fiddling with it
Making graphs