[Development] RFC: Proposal for a semi-radical change in Qt APIs taking strings

Bubke Marco Marco.Bubke at theqtcompany.com
Sat Oct 17 17:06:15 CEST 2015


On October 17, 2015 15:52:08 Smith Martin <Martin.Smith at theqtcompany.com> wrote:

>>Please understand my POV: I am of the firm belief that Qt has no business
>>creating inefficiencies for its users by sloppy implementation. Anywhere.
>
> I think you are overreacting here, way too much. You have discovered a more efficient way to handle strings, but that doesn't mean Trolltech created inefficiency by a sloppy implementation of QString. QString has been used productively by many users for a long time. The fact that a moere efficient implementation exists doesn't mean the current implementation is inefficient. 

QString makes heap allocation and has atomic pointers. I think it was designed for convenience and  not for maximum speed. That's okay because Qt is mostly a GUI and not text processing library.

>>I find it intolerable that todays software
>>takes 1000x the memory, 1000x the CPU capacity and doesn't get a given jobs
>>done in less wallclock time than software 20 years ago.
>
> But the fact is, it usually IS tolerable, because the applications you are talking about mostly work in human time.
>
> Your efforts to improve Qt are most appreciated, but you make it sound like we should publicly name and shame all the engineers who ever worked on QString but who failed to find the holy grail of the most efficient implementation.

Like I wrote they were very understandable design decisions. Anyway I think a professional developer knows that he should has distance to his code so that he get criticism about it not personal. Understanding criticism and argumentation as a process to write code is, I think, the key to get a good developer. So why they should be feel ashamed if something better comes up. This is called progress und it happens all the time.  I think I would be feel ashamed if I would fight other code because of personal reason. Sometimes I feel that way but I hopefully not stick to it. ;-) 

After reading some proposals about string view it has to my understanding this properties:
1. Makes string usage between different implementation more efficient 
2. Improve static analysis - makes ownership clear
3. Gives the different string implementation a common ground

You can use easily use a Qt function without creating a QString which can be a big advantage if performance matters.



More information about the Development mailing list