02-01-2011, 12:37 AM | #1 |
Junior Member
Posts: 5
Karma: 10
Join Date: Feb 2011
Device: Kindle-3
|
Learning purpose : Want to port Calibre from Py to CPP
Dear Kovid Sir and Calibre Team,
I want to port Calibre from Python to CPP. This all I want to do for learning purpose. My Brother told about this software. I am quite impressed. Just want to go through the same learning curve, that Kovid sir has went through. Kovid Sir, I wont do bombardment of question on you. Just a small favor I need from that is just to guide me. I know you must be very busy to read my conversation and reply. But I am not in hurry, I just want to learn. If you can help me out or tell me where can I get help, as you know my intension. I will be very thanks full to you. Thanks Alok |
02-01-2011, 01:39 AM | #2 |
creator of calibre
Posts: 43,860
Karma: 22666666
Join Date: Oct 2006
Location: Mumbai, India
Device: Various
|
You will find porting calibre to C++ impossible. calibre alone is over 200,000 lines of code and that is ignoring all the python dependencies it relies on. Since I'd estimate that achieving the same result in C++ would on average require 5-10 times the code, you're looking at writing 1-2 million lines of code. Given that on a perfect day I can write and test about a 1000 lines of python code, it would take atleast 3 years to port calibre to C++.
|
02-01-2011, 07:39 AM | #3 |
Sigil & calibre developer
Posts: 2,488
Karma: 1063785
Join Date: Jan 2009
Location: Florida, USA
Device: Nook STR
|
Porting a large complex application from one programming language to another is a terrible way to learn. Calibre uses a lot of Pythonisms (list comprehension and lambda expressions for instance) which don't translate well to C++. All you're going to learn is how to turn Python into bad C++.
|
02-01-2011, 07:56 AM | #4 |
Avid reader
Posts: 826
Karma: 6377682
Join Date: Apr 2009
Location: UK
Device: Samsung Galaxy Z Flip 4 / Kindle Paperwhite
|
Being slightly more encouraging, he could start building a Calibre look alike in C++, start very simply and implement the most important features first (e.g. add a book, transfer to ereader, metadata, search etc.). It wouldn't be a port, more of a rewrite, but it would be more of a learning experience and definitely more achievable.
Andrew |
02-01-2011, 11:10 AM | #5 |
Junior Member
Posts: 5
Karma: 10
Join Date: Feb 2011
Device: Kindle-3
|
Thanks to Kovid sir, Andrew and user_none
For me all the response are encouraging. I have already allocated my self for 2 years for this. As per Kovid Sir's Suggestion, I will add one more year. I know, Sir it took years what we see calibre now. Good things always take time to build up, and I m ready to spend time. and I know its worth. Andy : Thanks a lot, for your valuable suggestion. May be this will be a rewrite of great application. I heard in my childhood, "see the master, follow the master, be the master" Just trying to follow some very experienced persons. If I can get help of your experience and knowledge. I will be very grateful to you guys. I have no fear of books and study, I will do all the study needful for this task. But only a thing I m finding hard, what and where to start. |
02-01-2011, 07:41 PM | #6 |
Calibre Plugins Developer
Posts: 4,637
Karma: 2162064
Join Date: Oct 2010
Location: Australia
Device: Kindle Oasis
|
I agree in thinking that a "port" is an insane idea. After all, given how quickly Calibre is updated, do you realise that after 3 years you will now be 3 years behind in the features Calibre offers? I seriously doubt any users out there will want an alternative inevitably bug-ridden version that attempts to offer the exact same functionality they got 3 years ago from Calibre? Without the huge user support base, community added plugins etc? So it would be purely for your own "benefit" in terms of coding knowledge, however as others have said there are alternative ways to do that.
By all means create your own book management application such as andyh2000 suggested above, people have different needs and certainly a "simpler" version of Calibre with far less features aimed at end-users who are less technical could be one such market. However I think you are crazy to spend 3 years full-time trying to emulate exactly an existing application... But hey, it's your life, good luck! |
02-01-2011, 11:01 PM | #7 |
Junior Member
Posts: 5
Karma: 10
Join Date: Feb 2011
Device: Kindle-3
|
May be it seems insane ...
but I have no aim to keep that app with. I am also going to give it to community, that actually not mine. community help me to develop community has all right over it. I am putting my time as without considering that there is someone who will love to help in this port but I m sure calibre lovers out there who can jump into to develop this port. May be I was wrong that I was expecting, acceptance of my idea and gratitude towards Calibre. But still I am standing by my decision and expecting someone to help me out to figure out the starting point for it. Though I have already started some paper work, but if I can have someone experienced, who can look over my shoulder that I am doing right or wrong will be a such a good help. Thanks to all for their response. No matter what they are, as you take out time and replied on my thread. |
02-02-2011, 10:36 AM | #8 | |
Curmudgeon
Posts: 3,085
Karma: 722357
Join Date: Feb 2010
Device: PRS-505
|
Quote:
You aren't going to get someone to help you out, and you aren't going to get community involvement, because people don't want to re-invent the wheel. Look at it from a programmer's point of view: do they want to get involved in your project, and duplicate calibre, so that three years from now they can get exactly what they already have today? Or, if they want to code, are they going to built onto calibre so that, a month from now, they can have something they don't have already? Three years for the same thing, or a month for a better thing ... that decision is a no-brainer. |
|
02-02-2011, 08:18 PM | #9 | |
US Navy, Retired
Posts: 9,864
Karma: 13806776
Join Date: Feb 2009
Location: North Carolina
Device: Icarus Illumina XL HD, Nexus 7
|
Quote:
It sounded like he wanted to do this for his own education and wasn't looking for anyone to help him code. Most likely he is looking for a starting point like the information here. He may need an occasional explanation but most of his questions should end up in a C++ forum, a book, a class or with him banging his head against the wall. I personally see very little upside in this project beyond personal education, but I'm not the one that wants to do this. Last edited by DoctorOhh; 02-02-2011 at 08:47 PM. |
|
02-02-2011, 08:43 PM | #10 |
Sigil & calibre developer
Posts: 2,488
Karma: 1063785
Join Date: Jan 2009
Location: Florida, USA
Device: Nook STR
|
It sounds to me like he has misconceptions about creating and building communities surrounding open source software. It takes growing a very large user base before you get a user who just happens to know how to code and just happens to want to step in and help develop. You might be the one off patch or two but committed developer that devote a significant amount of time are don't happen right away.
A good idea, a good base to start with, a good attitude and good communication are essential for a project to grow beyond one person. I'm the sole maintainer of an open source project that has a few hundred (maybe one thousand) users and I have had zero code contributions. I took it over from the original creator and the entire code base (aside from a few patches and translations) was his. It was over four years after the original creator's last release and my first release. He was even publicly asking for someone to take over the project for two(?) years before I stepped up. From his last release to the current release I've probably rewritten about 75% of the application. Community is not some magical thing that just happens it takes a lot of work. None one is just going to jump up and start contributing. This is why forks often fail. |
02-04-2011, 10:39 AM | #11 | |
Junior Member
Posts: 5
Karma: 10
Join Date: Feb 2011
Device: Kindle-3
|
Quote:
I an agree with Andy from the beginning, when he called it less port more look alike. I have no problem what it is being called, because motive is quite larger than this. But just for you, dont take it in offensive way. There would be even no calibre if Kovid sir had thought the same, I m sure there were some ebook reader, may be not very nice. I am no where disgracing Calibre as it is the cause of that is cooking up in my mind. With all due respect to Calibre team and Kovid Sir's efforts. And I m sure there would be no operating system, after the first one, as u can consider that as reinventing of wheel. I have no intension to offend you, just promoting the coexistence. Thanks a lot for your time to read my post and reply. as every post over helps me one way or another. I am thankful to all who are posting their thought, we live in free world. Lets enjoy the freedom cheers. Alok |
|
02-04-2011, 10:56 AM | #12 | |
Junior Member
Posts: 5
Karma: 10
Join Date: Feb 2011
Device: Kindle-3
|
Quote:
Its was quite helpful and informative. Surely I will keep all your idea and thought with me as they are going to help me in long run. of course your experience counts and I can count on that. I am not expecting initially that somebody will start jump and do code with me. I know its seems hard or may be harder. But that doesn't distract me to do this. It seems stubborn, but it is not. Just it should be consider my determination. Hard comings are always there when you start something, By physics static energy is always more than kinetic energy. There is saying in my local "Akela hi chala tha jaanibe Manzil ki taraf, Log milate gaye kaarwaan banata gaya" which means I set out towards destination, people start gathering and we have become large group with same destination. I don't to create a community, what and all I m creating. if it creates by itself that very good, otherwise I dont mind coding and doing it by myself. As it all started with me. Thanks a lot for your valuable time. I hope I will be having your post now and then as they are helpful to me anyway whether they are technical or not. Cheers, Alok |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
what is the purpose of telling Calibre what your device is? | rheostaticsfan | Calibre | 3 | 09-03-2010 12:04 PM |
The Purpose of Copyright...(in the US) | guyanonymous | General Discussions | 7 | 08-12-2010 04:09 PM |
What is the real purpose of DRM? | rleguillow | General Discussions | 36 | 04-11-2010 12:15 PM |
calibre-server on port 80 problem | jquest | Calibre | 2 | 11-06-2009 06:04 AM |
Savory - a calibre port running on the Amazon K2 | Nate the great | News | 0 | 04-03-2009 09:22 PM |