Closed vaibhav-kaushal closed 5 years ago
Let me answer this the same way you did.
The ones you mentioned about Go do not exist here and I have not practiced enough to encounter any, so far. The one thing I keep hearing is that they change the internal representations of the 'String' data type which makes some functions slower and some faster but they have been getting better at it and it does not cause bugs to prop-up.
It doesn't run on Windows can be counted as a Con but I mostly count that as a Plus, actually. They are not avert to Windows but the lower-level stuff is all built on UNIX-like calls so Windows goes out of question for obvious reasons. While the developer team says if someone does it, they would welcome it, but it is not on their minds. It's like how C# does not get love from Microsoft for Linux. Mono was created by someone else, outside of Microsoft.
Good friends @spekary and @vaibhav-kaushal!
I ask the question that whether QCubed is lagging behind? Do we have to abandon QCubed 4v, because there is a fear that it will not develop more?
Maybe there's an alternative to doing two branches of GO and Swift on QCubed. But leave QCubed 4v calm and develop it further. We'll see which one is more viable. That would be Solomon's compromise???
No, not abandoned. Its maturing at this point. Php is an excellent language for small projects, for new programmers, for people who want to work in an environment that is easy to script, and for quick prototyping.
Go is great for a project that demands high performance, or has multiple people working on the same data. It is not quite as natural of a fit as PHP because of some of the quirks of Go, but the performance gains on a larger project outweigh some of the pain I think. It really is significantly faster, but you would only really notice if you had many people simultaneously using a machine.
Swift looks interesting, but it doesn't have a Windows toolset, and the Linux side is pretty new and just emerging now. Its a more cumbersome language to learn, but is very expressive. Speed tests show its very fast, not quite as fast as Go, but close enough that most people will not care. The open source community appears much smaller than Go's to me, but the Vapor framework shows promise, and has some similarities to QCubed, like a code generated ORM. However, for the most part, the tooling is limitted to XCode, or a Linux editor plus command-line tools, so its hard to tell what the development process is like. Online, some say its great, and others found a lot of pain once a project got around 70K lines.
But QCubed will be the more mature for quite some time. I have a project right now that is data intensive, but really only a handful of users, so PHP is a great fit for that. Another project I am working on might grow to 1000 users simultaneously, so GO is a much better fit for that. It all depends on the goals of the project.
I think QCubed should go on. I think QCubed is good. Except that we are not focussing on web 3.0 - the rise of front-end framework where all software including web pages fetch data from the server using APIs. Apart from that, QCubed is good.
Of course we have to do development for QCubed but I too think that we should recreate the framework in one of the rising languages. I choose Swift for its clear Object Orientation and rather supportive community. Fact is - those languages me and @spekary were talking about - Swift and Go do not need yet another framework. Frameworks are hard to build and difficult to maintain. Having written a large part of documentation of QCubed myself, I can say that maintaining documentation and keeping it up to date is also a great challenge in itself.
I am inclining more towards writing a QCubed-style generator for Vapor. Because:
For that matter, I think I am moving with Vapor but to rewrite a Swift based framework is not on my mind.
Go's inheritance stuff is actual very simple. Maybe too simple. It doesn't really have inheritance, but composition. But I have found a pattern that lets you program just like inheritance, so its surmontable. Look at my "goradd" project.
I will try to take some time over the next month to learn some Swift and evaluate it.
There may still be some code sharing possible. The qcubed.js file might be usable by multiple branches.
Regarding Web 3.0. I am not convinced. Web 3.0 is largeley a programming style designed for large scalable deployments. To do it using frameworks like React, you have to have a very good idea of what you want before you start. Change management is difficult.
QCubed is more for medium to smaller sites, where you need to quickly create a website then manage its change over time.
So we agree that Go and Swift have their purpose but that this is not for QCubed. QCubed remains PHP. Close ticket?
This issue is a continuation from here. The following was said by Spekary in the linked comment:
When I looked, Swift was Mac only, and did not have many 3rd party libaries that would be typical for PHP and web development. I like Go because of
That said, there are some limitations:
What are your thoughts on Swift?