Which web browser is best?

main-desktop

This is a topic that has been on my mind lately and I’ve scarcely found anyone discussing, so I might as well fill the niche. I’m writing this with the target audience of consumers and web developers in mind.

Why does it matter which browser I use?

Most browsers properly show web pages now more than ever. So why should it matter which browser you use?

It matters it terms of usability, performance, security, privacy, and extensibility. Mobile browsing also widens the options and potential issues for non-mobile designed websites. Let’s tackle each issue at a time.

Usability

Firefox, Chrome, and Internet Explorer are all very similar in terms of the user interface. At least on a desktop/laptop computer. Browsers in common use (that I’m aware of) have the same components – An address bar, history, forward/back buttons, and the potential for plugins.

Things such as unwanted popups, auto-playing video ads on some sites, and small text size are potential problems for usability. These issues run across multiple browsers and are hard to contrast because of that fact. Without special cases or knowledge (such as blocking java/javascript/flash, or using special browser plugins) these can be an issue for the vast majority. Blocking such things can also affect usability so that’s not generally recommended – for instance blocking javascript may affect a news site loading more content. Ads obviously depend on the types of sites visited, but I’ve seen many sites get passed around on social media that take full advantage of issues for normal unaware users.

Mobile browsers are a bit different. Essentially everything goes to a touch screen interface, and the trend for web design is to design “mobile first.” At least several browser apps provide a way to “Request Desktop Site” which will change the view.

The mobile interface is different for browsers as it is with any application. Typing a web address for instance can be cumbersome for some with the touch screen interface.

Performance

Here is a Benchmark of browsers performance, decide for yourself which you like best.

Chrome is optimized for javascript – which is used for animated content in many cases on the web. When Chrome was first released a comic was released with it describing why it’s better than it’s competitors. (Some) of the issues there are still relevant today but that is beyond the scope of this post and it is recommended research.

I remember using firefox around 2014 while browsing and I noticed it dropped very significantly in performance when updated. It turns out this was an issue with firefox itself that affected many in the mainstream release. Clearly there’s potential for some form of failure in any browser.

One issue unknown to many is that browsers have a cache that is used for keeping the state of the browser. For example, every (so many) seconds a web browser saves the current sites the user is visiting in case the computer crashed abruptly these sites will be available. The potential problem is saving this information can cause ware on a hard drive over a period of time – and this feature can be disabled.

Security

Due to the complex nature of rendering a webpage, browsers have vulnerabilities of some kind lurking in the code. These can be taken advantage of if visiting a malicious page.

There is a feature called “sandboxing” a program that has to do with protecting the memory in vulnerable areas and in this context making it more difficult for an attacker to gain control of a browser. At the time of posting, Chrome, Microsoft Edge, and Safari use sandboxing. Firefox does not, and this may signal that it is a more vulnerable target and thus more likely to get attacked if visiting a malicious webpage.

Extensibility

Browser plugins can be useful for extending functionality. Every major web browser supports extending functionality. Some extensions may be made for one browser and not another, but that must be reviewed on a case by case basis.

 

Quick python test for wordsort

Years ago, when I was first learning to program, one of the programs I wrote (with help) was a simple wordsort in C. It takes a plain .txt file and sorts individual words out. I realize there is better tools for this (sort command, anyone?) but understanding how algorithms work can be enlightening at times.

 

I’ve been running some small experiments with python. I realize data sorting is a very common problem in computer science. In this case, however, I am impressed at how well a high level language such as python can handle word sorting compared to others. Some of the steps involved can get relatively complex.

 

In this case, suppose a book is in plain .txt text format and you want to extract all of the words from it. In a lower level language sufficed to say the steps to this can get much more complicated with sorting algorithms, pointers to pointers and maybe a couple of hundred lines of code. Here is sample python code:

Sample code:
#Open the file book.txt, read it as a huge string replacing \n or enter key spaces
with open (“book.txt”, “r”) as myfile:
 string_data=myfile.read().replace(‘\n’, ”)
#Split the words of the data into an array.
words = string_data.split()
#Sort the array
words.sort()
#Print the array
for word in words:
   print(word)

Put that in a python file and run it – That’s it! It should print to the command line. Hopefully this is (somewhat) quantifiable evidence of the usefulness of python.

 

*Comments should now be enabled if you click on this individual article.

Updates: Spam, Gaming, And Python

I’ve had to temporarily disable comments for the time being due to spam. I hope to find a wordpress plugin to solve that problem in the future. In the mean time, here is a short update as well as a list of what is going on:

 

I’ve been experimenting with HTML5/Javacsript using the Phaser library a lot lately.  You can find a simple game I made called “Counting Sheep” here. The objective of it is simple: count the sheep and enter how many you saw. It is mobile-friendly. I’m going to be fully forthcoming, I was focusing on the programming and the graphics are kinda shoddy.

 

It seems there is a small market for HTML5 games. It would be an interesting side job, although the quality needed is slowly going up. It kind of mirrors the market for flash games the past few years in some retrospect. It is constantly changing and a rush of developers are driving quality up (gameplay, art, and audio). Much of the information needed to make something simple with Phaser is freely on the web at phaser.io and browsing various HTML5 forums.

 

I’ve also been experimenting with python. I’m impressed at how straightforward a language it is. Things it would take me 30-50 lines to do in a C/Java program such as reading and modifying a file might take only 5-10 lines in python using comprehensions. More on this later.

Introduction: Just who is this kahootbird?

I’m a computer science student. My focus is programming/database. The first programming language I learned was C, followed by Java, PHP, and Actionscript. My interests include  database design & development, programming, mathematics, game development, computer security,  art (drawing/animation, etc).

 

It’s come to my attention that over time, I’ve come across a lot of interesting material. How applications work, code optimization, quicker ways to do things and so forth. It seems a bit of a waste to keep that to myself, and I want to share my experiences with you, the reader.

 

I’m not completely sure the best way to introduce myself other than in terms of what might be of interest to you – the reader. The focus of this blog is my experience with computer science, game development, databases & related subjects. Things such as code design patterns, MYSQL optimizations, improving drawings and anything interesting I come across. I also want to improve my ability to articulate ideas in a written fashion, and I believe one good way to do that is through practice.

 

Please feel free to leave feedback. I not only welcome feedback – it’s encouraged. Without constructive feedback it would be harder to improve! You may tweet me on my twitter account @kahootbird or leave a comment on this blog.

 

You may view my git page here and some of my past games here

 

Kahootbird