Build your own application

Adiel35

New Member
Joined
Jun 28, 2024
Messages
3
Reaction score
0
Credits
30
Hello!

I am Adiel. I am studying Linux in school. I'm curious. For any developers out there. Is it possible to build your own pdf application like Adobe if you put together components and maybe use Linux to develop it?

Thanks looking forward to your thoughts.:)
 


It's possible of course but not easy to do on your own because it would take a lot of effort on your part.

If you know some programming language you can start right now, otherwise you need at least 2 years to get skilled with a language + some years of practice with libraries.

If you're student I suspect you're learning C\C++?
 
Last edited:
Depends on the approach you want to take.

If you want to end up with a compiled binary, that will run on as many distros as possible, then yes; as @CaffeineAddict says, the 'standard' approach is to completely write the entire thing in a recognised programming language. You need to learn what the various dependencies/libraries offer, and how to access their functions. You need to learn how to debug/troubleshoot, throughout the entire process. If you want to have a GUI - and most people will want this - you have to learn how to create this, too.

You'll need to learn how to package.....and every 'family' of distros has its own set of official 'rules' as to how this is done.

~~~~~~~~~~~~~~~~~~~~​

Probably a far easier approach is to use something like a Bash script, calling-in and using a bunch of standard components that come with the OS OOTB. Myself, I've written a number of small utilities in Bash - in self-contained, 'portable' format - that work this way, with a simple GUI created with YAD (Yet Another Dialog).

One of my acquaintances on the Puppy Linux forum has been building his own PDF viewer over the last couple of months, using the same approach; making use of existing standard components/commands, and fronting the whole thing with a YAD GUI.

This is much the easiest way for beginners to achieve something 'workable' that also looks halfway respectable.


Mike. ;)
 
In general, one of the great things about Linux, and the entire family of *nix operating systems that kinda started with Unix, is that it was made with one user group in mind or at least prioritized: programmers.

So if you ask: can I build my own application, the answer would be: does the pope shit in the woods? Is a bear catholic?

Yes, you can build an application in Linux if anywhere.

That being said, there are a load of choices to be made. What functionality do you want, or what problem do you want to solve? How lazy are you (laziness is very important for programmers, it is the root of all invention) and how much of your solution can you find done by others? What programming language are you going to use, and how good is the community, the documentation, your ability, with that language?

If you have some idea about the answers to those questions, you just start. And fail. And ask for help. Start again. Fail again. And so on. Until one day, you either discover you have fallen in love with software development, or you are better of studying business administration, art history, or philosophy.
 
How lazy are you (laziness is very important for programmers, it is the root of all invention) and how much of your solution can you find done by others?
Oh, aye; one thing here I will agree with. It is astonishing, when you review the work of others, just how MANY snippets of code you find that are constantly re-used over & over again.

There's only so many ways of doing things in Bash, for instance. There's only so many constructs that can be put together......but the important thing is being able to string these constructs together in perhaps new or novel ways, or in perhaps an original "pattern".

(There again, if what you want to do can be entirely achieved by copying chunks of code from others, at least the GPL allows for that.......so long as you give credit to the original author. This is perhaps one of the most important "principles" IN the open-source world....)


Mike. ;)
 
How lazy are you (laziness is very important for programmers, it is the root of all invention) and how much of your solution can you find done by others?

Confucius say, "If you have difficult task, give it to lazy man. He find easy way to do it."
 
Hello!

I am Adiel. I am studying Linux in school. I'm curious. For any developers out there. Is it possible to build your own pdf application like Adobe if you put together components and maybe use Linux to develop it?

Thanks looking forward to your thoughts.:)
Here are some pdf viewers and the languages they are written in:
Code:
Viewer      Programming Language
======      ====================
xpdf        C++
mupdf       C
qpdfview    C++
zathura     C

Pdf viewers also use toolkits like GTK and Qt for their rendering.

There are tools that look into pdf files e.g.
Code:
qpdf:
Description: tools for transforming and inspecting PDF files
 QPDF is a program that can be used to linearize (web-optimize),
 encrypt (password-protect), decrypt, and inspect PDF files from the
 command-line.  It does these and other structural, content-preserving
 transformations on PDF files, reading a PDF file as input and
 creating a new one as output.  It also provides many useful
 capabilities to developers of PDF-producing software or for people
 who just want to look at the innards of a PDF file to learn more
 about how they work.

The source code for all the above pdf viewers is available and can be freely used, adapted and published. In debian, source code files can be downloaded if the sources repository is configured in the sources.list, e.g. a line like the following:
Code:
deb-src http://ftp.au.debian.org/debian/ bookworm main

Otherwise one can access the source code at the home pages of the respective pdf viewers, mostly on github.

As @CaffeineAddict mentioned, it takes significant learning time to get around this sort of task, but if you are learning this sort of thing nosing through source code isn't a bad start.
 

Staff online

Members online


Latest posts

Top