kimwalisch / primesieve

🚀 Fast prime number generator
BSD 2-Clause "Simplified" License
942 stars 123 forks source link

🎉 #39

Closed antonmedv closed 6 years ago

antonmedv commented 6 years ago

Hi,

I really like you project! Really AWESOME! Can you tell more about it? When and why you decided to create it? How long it took? What background you have?

kimwalisch commented 6 years ago

Hi,

Can you tell more about it? When and why you decided to create it? How long it took? What background you have?

My parents bought me a PC around 1997 when I was 14 years old, the PC was very expensive back then and was not very useful for anything except gaming. So I bought the book "C++ for Kids" in order to do something useful with the PC, my goal was to program a graphical computer game myself and I had heard you could do this using C++ :-)

As a programming exercise this book contained a graphical program for checking whether a number was a prime or not. I had a lot of fun with this program, but because it was very slow (it took about 1 minute to check whether a random 32-bit number was a prime or not) I tried to optimize it to make it run faster. That's how I got hooked to prime numbers.

I got my first programming job in 2007 in the finance sector just before the financial crisis started, during the financial crisis my company suffered a lot and finally went bankrupt in 2010. So I lost my job and I finally had plenty of time to start a side project. Back then I decided to start primesieve and basically use my knowledge about primes which I had acquired when I was a teenager to write a multi-threaded sieve of Eratosthenes implementation (there was no multi-threaded sieve of Eratosthenes implementation on the web back then) and to make a graphical user interface for it as well.

Initially I thought this would take me 2 months of work. But it took actually much longer, you can spend endless time to polish your side projects e.g. improve the website, improve the GitHub README.md, improve the build system experience, improve testing (looking at your side projects I guess you know this very well). I mostly finished primesieve in 2016. Nowadays I just do maintainance work e.g. silence compiler warnings, fix issues, merge useful pull requests, ...

I did go to university and study computer science but most of my knowledge about programming, CPU architecture and primes is actually self taught. I own a large collection of books about optimizing C/C++ and a large collection of books on how CPUs work. I also read a lot of scientific papers related to prime sieving and I spent a considerable amount of time reading other people's open source code.

Greetings, Kim

antonmedv commented 6 years ago

Thanks for response. This is very interesting. Hope some day you invent your own sieve 😃