Ask HN: How should I get started with Linux application programming?
Any programming language, but preferably FOSS, of course, as this will be on a Linux system.
Thanks :)
Any programming language, but preferably FOSS, of course, as this will be on a Linux system.
Thanks :)
There's a book called Beginning Linux Programming by Stones and Matthew which is a great introduction to the operating environment and key concepts, and nice to read. The use an example database application of a CD collection/music store, developed/extended in a variety of programming contexts and languages. I'd say obtain the book and curl up with it for 3 days, it's worth owning a copy anyway and you'll know after a few days whether tis feasible for you or you're entering a world of hurt.
Advantages:
1. Solid, stable, well maintained, well tested.
2. Great documentation, a huge library of code to learn from.
3. Batteries included. Web, databases, scripting, everything is painless and simple. Stand on the shoulders of giants, and stuff like that.
4. It's C++, so it's wicked fast.
5. Even though it's C++, it's not as difficult as people think it is.
6. Qt Designer makes designing GUIs simple and fun.
7. Cross platform. If you take care not to tie your app to any Linux-only APIs, you can make your app work on Windows and OS X by simply recompiling it on these platforms.
Pick up "C++ GUI Programming With Qt 4" and dig right in.
Of course, if you wanted to write Windows-only code, I'd suggest C#. If you wanted to write Mac-only code, Cocoa would be the way to go. Nothing beats native.
It could be a webapp, sure, but it needs to be able to print and interface with a printer properly... I suppose a custom style-sheet could take care of it. Do you think a point-of-sale webapp is a good idea?
And yes, I know I have a ton of choices, which is why I came here for advice. I respect and value HNs opinions.
If it were to be a web app you could (for example) use a PDF library to produce receipts and handling printing that way. In this case, you could also provide a simple and clear way to customise the receipts.
Certainly the advantage of it being a web app is that you wouldn't specifically have a requirement for Linux (if for example they already have a set of workstations) or installed applications. This would mean that implementation would be far easier and say, managers could quickly pull up the POS system for a specific client in the back office.
The only issue I can see with a web app solution is interfacing with hardware. You would either need to forgoe the possibility of hardware, or work out a way to interface them.
I think there are countless possibilities, most of which will be rather dependent on the local businesses. They seem to have provided you with a lot of breathing space, so it may well be that many solutions will fit and you are free to choose which would work best for you.
Also, it might be nice for a manager to be able to look up how sales are doing when they are not in the office. Of course, this could be done without making it totally web-based, but it would be harder.
It might be easier for users to customize the system, too – it is easier to change the GUI of a web app, I think (like adding more buttons to a window). The users could also perhaps use a custom stylesheet in the browser if they didn't like the look, though ideally the PoS app would allow changing the look from from within itself.
Besides, most of POS systems need to communicate with a display (the thing that shows the price) and other devices (money drawer, etc), so I can't see how you would accomplish that from a web page.
Of course, if you don't need this features and/or are doing the thing as an experiment, just ignore my post :)