Apr 8, 2017 09:15 PM
(This post was last modified: Apr 9, 2017 11:36 AM by Uefi.)
There are various frameworks for almost every stable and commonly used language spanning from web-development to desktop environments.
Many frameworks claim they should be adopted for:
- Stability
- Security
- Improved Syntax
- Low-level optimization
- Portability
- Community
- Configurability
I personally find that:
Desktop frameworks (Such as Qt) have porting issues, are unstable for implementation into an enterprise environment, lack a sufficient community, or improperly manage memory.
Web-Development frameworks (Such as Laravel) are insecure out of the box, have arbitrary syntaxes, and require masses of configuration to ensure the features guaranteed by the framework developers are implemented to which when not done consistent to the platform it's running on open security holes and result in inefficient processing.
Curious as to HF's thoughts on frameworks.
Do you use them?
Why?
Pros/Cons over the original language.
I am relatively new to web frameworks and my only experience is with them 4 days of Angular, so I will speak from this.
The framework is a huge learning curve, partly because of syntax (though I disagree with calling it arbitrary, just 'new'). My main draw is its cross-platform capabilities. Porting may not always be stable and will rarely trump a native deployment in terms of performance. However, the idea of porting is to save time and money in startup and in maintenance - luxuries that small parties don't always have.
This is the opposite of large scale enterprises, so it comes down to needs.
(Apr 9, 2017 02:58 AM)Owl Wrote: I am relatively new to web frameworks and my only experience is with them 4 days of Angular, so I will speak from this.
The framework is a huge learning curve, partly because of syntax (though I disagree with calling it arbitrary, just 'new'). My main draw is its cross-platform capabilities. Porting may not always be stable and will rarely trump a native deployment in terms of performance. However, the idea of porting is to save time and money in startup and in maintenance - luxuries that small parties don't always have.
This is the opposite of large scale enterprises, so it comes down to needs.
So you're saying for smaller projects or new developers who need their program quickly multi-platformed portability is the way to go?
I totally agree and it's more than understandable, not everyone has multiple languages at their disposal in multiple operating systems or the time to program to code a native application for each.
> Do you use them?
yes
> Why?
Because they make development so much faster. Why create my own user account system when I can just use a library?
Specifically user accounts. Why use an untested and maybe security holed code you wrote yourself when you can use a library used by thousands of other devs that have read the code and tested it with penn tests?
(Apr 9, 2017 07:01 AM)givevalue Wrote: > Do you use them?
yes
> Why?
Because they make development so much faster. Why create my own user account system when I can just use a library?
Specifically user accounts. Why use an untested and maybe security holed code you wrote yourself when you can use a library used by thousands of other devs that have read the code and tested it with penn tests?
But this is what object oriented programming is for, oop isn't just for desktop environment. If you are an incompetent programmer go open source and have people criticize your code. Transferring to a framework because of lack of skill in a programming language is becoming a goto; it's also the reason why frameworks have a bad reputation.
After you preform standard checking, registering a user comes down to a single line of code similar to:
PHP Code
<?php $user->register($name, $username, $email, $pass)
(Apr 9, 2017 05:52 AM)Uefi Wrote: So you're saying for smaller projects or new developers who need their program quickly multi-platformed portability is the way to go?
I totally agree and it's more than understandable, not everyone has multiple languages at their disposal in multiple operating systems or the time to program to code a native application for each.
Yes that's what I mean. Developing for individual platforms can require a completely different language stack (take Apple and their Swift/ObjC for example).
From your other response, I didn't fully understand your thread's question but you have a valid point. There are frameworks/libraries for absolutely everything. It just seems to be a trend going on, particularly in web dev.
(Apr 9, 2017 08:56 AM)Owl Wrote: Yes that's what I mean. Developing for individual platforms can require a completely different language stack (take Apple and their Swift/ObjC for example).
From your other response, I didn't fully understand your thread's question but you have a valid point. There are frameworks/libraries for absolutely everything. It just seems to be a trend going on, particularly in web dev.
Swift is very clean and built specifically for iOS development and the IDEs for Swift are very professionally built. Apple's move with swift was an intelligent one, Visual Studio developers should honestly be envious. So when referring to the bad of frameworks Swift is far from within that group although I'm not a fan of it's syntax I don't even consider it a framework. I believe Qt has Apple/Android portability (don't quote me on this) but when it can't even port properly between linux and windows I honestly don't want to waste my time making a mobile application only to have it not port. From learning syntax, memory management, to new IDEs, frameworks that promise portability have failed me endlessly, I've given up on them and just code native. WinAPI & POSIX is a pain to covert between so I wanted cross-platform solution but it's simply a joke and so are all the upcoming frameworks.
As for web-development I see a lot of people using Angular, Node, and Laravel. Simply for curiosity purposes I took a look at Laravel, there is more configuration required for a secure setup than lines of code. It's highly confusing for new developers which is what most people using frameworks are not to deride professional programmers who utilize frameworks; these new frameworks are excepting more than just rudimentary coding experience. People who adopted node are more the type to adopt this newfound rise in frameworks being 'innovative' however, I just don't see any of these adapting to an enterprise environment and they're too hard to be securely used by newcomers to the programming world.
DO NOT DEAL WITH THIS MEMBER
Apr 9, 2017 09:13 AM
(This post was last modified: Apr 9, 2017 09:16 AM by g4143.)
I looked into frameworks which have covered everything from web dev to cloud computing and it's the only way to keep current.
My current framework du jour is Elm's and it's fantastic.
(Apr 9, 2017 09:13 AM)g4143 Wrote: I looked into frameworks which have covered everything from web dev to cloud computing and it's the only way to keep current.
Read post above. Particularly the last sentence or two.
DO NOT DEAL WITH THIS MEMBER
Apr 9, 2017 09:22 AM
(This post was last modified: Apr 9, 2017 09:23 AM by g4143.)
(Apr 9, 2017 09:13 AM)Uefi Wrote: Read post above. Particularly the last sentence or two.
Frameworks are not there to make the rookies job easier. Frameworks are there to make the professionals job easier.
Apr 9, 2017 09:31 AM
(This post was last modified: Apr 9, 2017 09:33 AM by Uefi.)
(Apr 9, 2017 09:22 AM)g4143 Wrote: Frameworks are not there to make the rookies job easier. Frameworks are there to make the professionals job easier.
But the feasibility of using them in any professional environment is simply non-existant. If we need to prototype we'll use something such as java and later port it native. Frameworks on their own are sometimes so abstract it's to the point of learning a new language. Also I seem them more marketed towards dilettantes than professional programmers.
(Apr 9, 2017 09:12 AM)Uefi Wrote: Swift is very clean and built specifically for iOS development and the IDEs for Swift are very professionally built. Apple's move with swift was an intelligent one, Visual Studio developers should honestly be envious. So when referring to the bad of frameworks Swift is far from within that group although I'm not a fan of it's syntax I don't even consider it a framework. I believe Qt has Apple/Android portability (don't quote me on this) but when it can't even port properly between linux and windows I honestly don't want to waste my time making a mobile application only to have it not port. From learning syntax, memory management, to new IDEs, frameworks that promise portability have failed me endlessly, I've given up on them and just code native. WinAPI & POSIX is a pain to covert between so I wanted cross-platform solution but it's simply a joke and so are all the upcoming frameworks.
As for web-development I see a lot of people using Angular, Node, and Laravel. Simply for curiosity purposes I took a look at Laravel, there is more configuration required for a secure setup than lines of code. It's highly confusing for new developers which is what most people using frameworks are not to deride professional programmers who utilize frameworks; these new frameworks are excepting more than just rudimentary coding experience. People who adopted node are more the type to adopt this newfound rise in frameworks being 'innovative' however, I just don't see any of these adapting to an enterprise environment and they're too hard to be securely used by newcomers to the programming world.
Swift works differently from Android development (with Java) and can only be developed on a Max, or OSX specifically. This was the reasoning behind my example, that prerequisites and learning required can make it more difficult to access.
(Apr 9, 2017 10:07 AM)Owl Wrote: Swift works differently from Android development (with Java) and can only be developed on a Max, or OSX specifically. This was the reasoning behind my example, that prerequisites and learning required can make it more difficult to access.
Proprietary!
Yes, the need for OSX is one of it's downfalls, there is one for windows somewhere but it is the most unstable IDE I've ever used. An Apple developer's license also brings a cost of 99$ last time I checked. Android is 15 or so EU. Developing for android is easier because it utilizes a common language (Java as you previously mentioned) and just throws a SDK at it, but Swift is stable and is used in almost every modern app; objective-c (which is the alternative) is obsolete at this point so by most developers Swift is considered a replacement language entirely rather than a framework. Frameworks aspire to be swift.
DO NOT DEAL WITH THIS MEMBER
(Apr 9, 2017 09:31 AM)Uefi Wrote: But the feasibility of using them in any professional environment is simply non-existant. If we need to prototype we'll use something such as java and later port it native. Frameworks on their own are sometimes so abstract it's to the point of learning a new language. Also I seem them more marketed towards dilettantes than professional programmers.
Not sure what your point is or maybe we have different ideas about what a framework is...
Apr 9, 2017 11:15 AM
(This post was last modified: Apr 9, 2017 11:16 AM by Malicious Intent.)
I recently started to mess around with Qt and i have to say its great. Takes time to get hang of but its a great framework. Not sure why u say its not multiplatform. I use it on windows and linux without any issue. In a fact you can simply copy project and rebuild it on different platform. Unless obviously you are using os specific libraries in your code. All in all it saves me a lot of time.
|