Khoa Pham
Khoa Pham
Aug 13, 2018 · 4 min read

That’s the question I hear often when people are introduced to a new framework. It’s a valid concern. But it seems to me that they ask this just for fun. To my surprise, most people just don’t care, and the frameworks with the most stars often perform the worst.

Now take a look back at performance. Here are some benchmarks

From https://github.com/ibireme/YYModel, compare different JSON mappers for ObjC

From https://github.com/bwhiteley/JSONShootout, compare different JSON mappers for Swift

From https://github.com/onmyway133/DeepDiff#among-different-frameworks, compare different diffing frameworks

The many stars

Take a look at the stars, the ones with the most stars often perform the slowest 🙀

I don’t say that more stars mean better. I don’t believe in stars. Stars may just be a result of mere marketing effort. The same framework, without any code change, but after featured in some newsletters, gets additional thousand stars. The code remains the same, so what do stars really tell here?

I’m not talking about closed source. I like open source. When deciding an open source framework, there are many factors. It can be issues and pull requests that indicate how the community care about it. It can be good code and good tests, that make it easy to maintain. It can be good documentation, that says how much dedication the developers have put in.

People tend to follow those that have lots of followers, and to star a project with lots of stars. Don’t trust the stars. It means nearly nothing. The star is just the result of some marketing effort. Being featured or not in a newsletter can make 1k stars difference. Just because it was featured in a newsletter does not necessarily mean that it is good 😬

We should judge it ourselves by checking how good the source code is, how many documentation are available, and whether there is unit tests or not. The author is just human, so he can’t help maintain the library forever. We’re taking a big risk if we don’t have good picture of the library.

The system, especially iOS, changes very often. There are some libraries that try to “replicate” system APIs by exposing tons of primitives or perform type checking for every possible types. It can be that the author pick the most common use cases, or just trying to provide a cleaner APIs to the user. But if things change, will that author be willing to fix that? Will we be stuck there and making another issue asking for help? We’re making life better, not traps for everyone to fall into 🙀

Are we willing to take vaccines we don’t know about?

I like open source. I ‘ve made some and contributed to some. I also use other people ‘s open source libraries and learn a lot from them 😇

Open source can help us build better, faster and maybe more software by basing on other people ‘s hard work. We can also collaborate and make it better. But it’s also a double edges sword if we’re not judging carefully.

A little bit more dedication

We can skip this post if our project is just for fun, and we don’t care about future maintenance. If we’re making client or product projects, we should care and put a little more dedication into it. The company and our teammates trust we to do the good work.

I’ve admitted that I ‘ve done node.js and electron.js. The choice is because it’s just a utility that I want to make quickly, and there ‘s many node.js packages that I can use immediately. I have little experience in node.js, so I accept the risk do get the work done. But if we’re experienced developer in our platform, and it’s our important project, then it’s a different story 💥

I’m kind of experimental person, so I always want to try new things. But I also learn the hard way to not over engineer, and to live as close to the system as possible. I just read Much ado about iOS app architecture and I agree with most of the points, that we shouldn’t fight the SDK and replace system frameworks.

To me, using 3rd libraries is like giving our life in someone else ‘s hands, that we have no control over our future. Please don’t just pod install and consider it done 🙏.

Fantageek

Simple apps that make sense

Khoa Pham

Written by

Khoa Pham

My apps https://onmyway133.github.io/

Fantageek

Fantageek

Simple apps that make sense

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade