Changing to C++

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Changing to C++

Leon Taylor
Hi all,

I recently saw the blog post on how the project is going to be re-written
in C++.
I understand that I am not to decide where the project goes or what happens
to it, but if it is not to late, I personally think that we should re-think
making the change to C++.
I understand the GObject is a pain in the ass to use and learn, and that
C++ is a better choice for developing desktop software (not to mention that
there more libraries available for C++), but I (personally) think that
re-writing the source code is counter-productive.
Many people do not want to use C++, as it is very complex and hard to use
properly. I know that you said it would be easier for people to learn C++
than GObject, but I disagree. Many people know C and how to use it
PROPERLY, whereas only experienced C++ developers can use it properly. I
think the only thing changing to C++ would do is scare off contributors.
This is just *my *opinion, so just take it with a grain of salt. Please
tell me if I have misunderstood something or taken something the wrong way.

Thanks, Leon.
_______________________________________________
gnucash-devel mailing list
[hidden email]
https://lists.gnucash.org/mailman/listinfo/gnucash-devel
Reply | Threaded
Open this post in threaded view
|

Re: Changing to C++

Bob Gustafson
I can put in a good word for Nim ( http://nim-lang.org/ )

It is as fast as C++ (compiles to C/C++), has intelligent (per-thread)
garbage collection, a robust type system (if it compiles, chances are it
is correct) and has a very lean syntax.

It also works well with Postgresql (probably also MySql, but I use
post). It is worth taking a look at.

Developing with Nim can be a lot faster than with C++. The lean syntax
helps a lot.

The front-end can also target Javascript for GUI development, although I
have not used that feature.

Best regards - BobG

On 06/04/2017 10:59 PM, Leon Taylor wrote:

> Hi all,
>
> I recently saw the blog post on how the project is going to be re-written
> in C++.
> I understand that I am not to decide where the project goes or what happens
> to it, but if it is not to late, I personally think that we should re-think
> making the change to C++.
> I understand the GObject is a pain in the ass to use and learn, and that
> C++ is a better choice for developing desktop software (not to mention that
> there more libraries available for C++), but I (personally) think that
> re-writing the source code is counter-productive.
> Many people do not want to use C++, as it is very complex and hard to use
> properly. I know that you said it would be easier for people to learn C++
> than GObject, but I disagree. Many people know C and how to use it
> PROPERLY, whereas only experienced C++ developers can use it properly. I
> think the only thing changing to C++ would do is scare off contributors.
> This is just *my *opinion, so just take it with a grain of salt. Please
> tell me if I have misunderstood something or taken something the wrong way.
>
> Thanks, Leon.
> _______________________________________________
> gnucash-devel mailing list
> [hidden email]
> https://lists.gnucash.org/mailman/listinfo/gnucash-devel

_______________________________________________
gnucash-devel mailing list
[hidden email]
https://lists.gnucash.org/mailman/listinfo/gnucash-devel
Reply | Threaded
Open this post in threaded view
|

Re: Changing to C++

John Ralls-2

> On Jun 4, 2017, at 9:23 PM, Bob Gustafson <[hidden email]> wrote:
>
> I can put in a good word for Nim ( http://nim-lang.org/ )
>
> It is as fast as C++ (compiles to C/C++), has intelligent (per-thread) garbage collection, a robust type system (if it compiles, chances are it is correct) and has a very lean syntax.
>
> It also works well with Postgresql (probably also MySql, but I use post). It is worth taking a look at.
>
> Developing with Nim can be a lot faster than with C++. The lean syntax helps a lot.
>
> The front-end can also target Javascript for GUI development, although I have not used that feature.


Yeah, there are a couple of hundred languages out there like that, each with its own tiny band of apostles. I'm sure they're all wonderful, but the small number of experienced developers makes them unsuitable for an open-source project that needs to recruit from as wide a pool as possible.

Regards,
John Ralls

_______________________________________________
gnucash-devel mailing list
[hidden email]
https://lists.gnucash.org/mailman/listinfo/gnucash-devel
Reply | Threaded
Open this post in threaded view
|

Re: Changing to C++

Bob Gustafson
It is now 2017. Good Luck


On 06/04/2017 11:32 PM, John Ralls wrote:

>> On Jun 4, 2017, at 9:23 PM, Bob Gustafson <[hidden email]> wrote:
>>
>> I can put in a good word for Nim ( http://nim-lang.org/ )
>>
>> It is as fast as C++ (compiles to C/C++), has intelligent (per-thread) garbage collection, a robust type system (if it compiles, chances are it is correct) and has a very lean syntax.
>>
>> It also works well with Postgresql (probably also MySql, but I use post). It is worth taking a look at.
>>
>> Developing with Nim can be a lot faster than with C++. The lean syntax helps a lot.
>>
>> The front-end can also target Javascript for GUI development, although I have not used that feature.
>
> Yeah, there are a couple of hundred languages out there like that, each with its own tiny band of apostles. I'm sure they're all wonderful, but the small number of experienced developers makes them unsuitable for an open-source project that needs to recruit from as wide a pool as possible.
>
> Regards,
> John Ralls
>

_______________________________________________
gnucash-devel mailing list
[hidden email]
https://lists.gnucash.org/mailman/listinfo/gnucash-devel
Reply | Threaded
Open this post in threaded view
|

Re: Changing to C++

John Ralls-2
In reply to this post by Leon Taylor

> On Jun 4, 2017, at 8:59 PM, Leon Taylor <[hidden email]> wrote:
>
> Hi all,
>
> I recently saw the blog post on how the project is going to be re-written
> in C++.
> I understand that I am not to decide where the project goes or what happens
> to it, but if it is not to late, I personally think that we should re-think
> making the change to C++.
> I understand the GObject is a pain in the ass to use and learn, and that
> C++ is a better choice for developing desktop software (not to mention that
> there more libraries available for C++), but I (personally) think that
> re-writing the source code is counter-productive.
> Many people do not want to use C++, as it is very complex and hard to use
> properly. I know that you said it would be easier for people to learn C++
> than GObject, but I disagree. Many people know C and how to use it
> PROPERLY, whereas only experienced C++ developers can use it properly. I
> think the only thing changing to C++ would do is scare off contributors.
> This is just *my *opinion, so just take it with a grain of salt. Please
> tell me if I have misunderstood something or taken something the wrong way.
>

Leon,

What you misunderstand is that it's even harder to write correct GObject than C++ *and* there is a much smaller pool of developers who know how.  There are no development tools that can statically analyze it, no compiler warnings for it, and so on. It's firmly bound to the Gnome ecosystem, which means that in order to eventually support platforms that Gnome doesn't--meaning anything mobile--it has to go.

One more thing: GnuCash's use of GObject is screwed up, so the code has to be rewritten anyway.

Regards,
John Ralls


_______________________________________________
gnucash-devel mailing list
[hidden email]
https://lists.gnucash.org/mailman/listinfo/gnucash-devel