How Rust Can Replace C In Python Libraries (infoworld.com) 304
An anonymous reader quotes InfoWorld:
Proponents of Rust, the language engineered by Mozilla to give developers both speed and memory safety, are stumping for the language as a long-term replacement for C and C++. But replacing software written in these languages can be a difficult, long-term project. One place where Rust could supplant C in the short term is in the traditionally C libraries used in other languages... [A] new spate of projects are making it easier to develop Rust libraries with convenient bindings to Python -- and to deploy Python packages that have Rust binaries.
The article specifically highlights these four new projects:
The article specifically highlights these four new projects:
- Rust-CPython - a set of bindings in Rust for the CPython runtime
- PyO3 - a basic way to write Rust software with bindings to Python in both directions.
- Snaek - lets developers create Rust libraries that are loaded dynamically into Python as needed, but don't rely on being linked statically against Python's runtime.
- Cookiecutter PyPackage Rust Cross-Platform Publish - simplifies the process of bundling Rust binaries with a Python library.
But why? (Score:4, Insightful)
Why use the new language of the month when C has been around for decades, is welll understood and does exactly what we want?
How long before I start replacing rust with decay? 6 months? A year?
Re: (Score:3, Interesting)
Re:But why? (Score:5, Informative)
We actually need to ditch people that cannot handle C. Go be a "business coder" but stay away from real programs.
Re:But why? (Score:4, Interesting)
But using C doesn't allow the SJWs to bikeshed over a buildbot being called a "master" or a "slave." [github.com]
Re: (Score:2)
Re: (Score:2)
I'd never work for your "company". A real program:
x) Abstracts work into reusable components
x) Abstracts interfaces into functional, communicable units
x) Doesn't care what languages it is written in
Everything you mention I have done multiple times in multiple languages. Modulo the brain damage of library authors and language run-times they are all the same. They all have bugs in all the libraries you mention. And the weird thing is that most of them eventually rely on the C runtime like virtually every
Re: (Score:2)
You mean like Rust? Which compiles to LLVM? Which is written in C++? Which uses the C runtime?
$ ldd /lib/libstdc++.so /usr/lib/libm.so.6 (0x00007fce35da5000) /usr/lib/libc.so.6 (0x00007fce359fd000) /usr/lib64/ld-linux-x86-64.so.2 (0x000055f372126000) /usr/lib/libgcc_s.so.1 (0x00007fce357e5000)
linux-vdso.so.1 (0x00007ffe1ad6f000)
libm.so.6 =>
libc.so.6 =>
libgcc_s.so.1 =>
But I've never
Re: (Score:2)
> Rust? Which compiles to LLVM? Which is written in C++? Which uses the C runtime?
Your ignorance is truly on display now.
Re: (Score:3)
> Completely impossible in C as C has nothing that resembles interfaces.
There are a couple reasons you are incorrect on this.
First, an "interface" has a few meanings in software development. It can simply mean the boundary between functions. A function declaration in a header file is an interface by this terminology.
Second, function pointers in C allow the type of interface definition I assume you are referring to (as in Go or Java for instance). The actual function called can be selected at runtime usin
Re: (Score:3)
Indeed. An interface is a concept on architecture level, not on language level. You can implement interfaces in _any_ language. But all those wannabe "coders" think it is the language that provides the interface. Classical case of not understanding abstraction and why it is important. No surprise there is so much badly structured code out there.
Re: (Score:2)
They don't link against libc?
That is correct. Free Pascal [freepascal.org], for example, doesn't link against libc unless you use libc directly or use some library which depends on libc. Free Pascal is not dependent on libc.
Re: (Score:2)
Why? To run after the latest programming language fad, again?
I liked the feature list of Rust, until I read the book and ran into their chapter on Ownership, I quit right there and then. I'll stick to std::shared_ptr<>, thank you very much. Research in programming languages is all nice and all these things contribute in their own way but in the end, the programming language should not get in the way of whatever algorithm you are trying to express. You need to be able to control your code in every as
Re: (Score:3, Interesting)
Re: (Score:2)
Re: (Score:3)
Performance wise, the code runs about the same as the equivalent in C.
Comment removed (Score:5, Insightful)
Re: (Score:3)
Re:But why? (Score:4, Informative)
You're part of the problem we face today. Computers are order of magnitude faster than 20 years ago and yet software still never runs any faster. Web pages still render as quick today as they did in 1997. Software still has loading screens and even with an SSD we have to wait for the operating system to boot up and settle down.
Re: (Score:2)
If you want web pages to load faster, use an adblocker. Ads are the worst reason of slow loading.
Re: (Score:3, Insightful)
C was never awful, It is and has always been a wonderful language. It is true that it is designed for people who know how a computer works... That might be a bit much to ask from "modern" "coders". If you have zero knowledge of what a computer actually does I can understand that you see it as awful.
Re: But why? (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Its a fact of life that you have a progressive stack from hardware to microcode to machine code to assembly code to C and to a VM. C has to be there and yes its hard to write securely. CPython is written in C. Whats the alternative? There has to be something outside the VM.
Re: (Score:2)
Its a fact of life that you have a progressive stack from hardware to microcode to machine code to assembly code to C and to a VM. C has to be there and yes its hard to write securely. CPython is written in C. Whats the alternative?
There was a time before C existed, and people were able to make their computers function even then. The ubiquity of C is a historical accident, not an inevitable conclusion; the layers of functionality we currently implement in C could just as easily have been implemented in ADA or Pascal FORTRAN or some other language, had history gone down a slightly different path.
C is definitely useful, but not uniquely so. If Rust can give us the benefits of C (low-overhead computation and low-level control of the ha
Re: (Score:2)
To do that Ada, Pascal and FORTRAN would have needed more low level features, which make them both useful and insecure. In other words, something like C has to exist. C is in some respect, a super macro assembler. Tied to the machine and the OS if it exists at all.
Rust would have to exist between C and python.
A friend of mine who did a lot of Ada programming told me that his project turned off array bounds checking because it was just too slow for their application to function. There is little difference be
Re: (Score:2)
Rust would have to exist between C and python.
Rust is a compiled language. Presumably, the first Rust compiler was written completely in C, with newer versions having progressively more Rust source.
Obviously, Rust, with it's run time checks, can't match the performance of C without those checks.
A friend of mine who did a lot of Ada programming told me that his project turned off array bounds checking because it was just too slow for their application to function. There is little difference between that and coding the app in C.
A co-worker told me that early C compilers put bounds checking (and other checks) in to the generated code. He and his classmates routinely disabled the checks, only turning them on to demonstrate their code passed the checks.
I see no compelling reason to switch
Re: (Score:2)
Presumably, the first Rust compiler was written completely in C
No, the Rust compiler was written in OCaml [wikipedia.org] before it became self-hosting.
Re: (Score:2)
To do that Ada, Pascal and FORTRAN would have needed more low level features
Pascal has the same low level features as C with a better type system and optional bounds checking. Pascal gives you the same power as C with better safety.
Strings and dynamic arrays are a good example. Strings and dynamic arrays are far easier to work with in Pascal than in C. They're both reference counted in Pascal as part of the core language. It makes things much simpler.
But equally if you really want to manage memory manually in Pascal then you can choose to do that too.
Re: (Score:2)
Re: (Score:2)
There are some places where C is useful
C underlies everything you use. Its in the firmware, the OS, the virtual machines and the compilers. Most things run on C. And yes, many applications these days are better written in a higher level language than C.
I am a former C coder and current python coder.
Because of the cool acronyms (Score:3)
For example Py-CRust.
Re: (Score:3, Interesting)
Re: (Score:2)
I remember porting one of my old MS-DOS demos from C to SDL. I had used a simple structure to abstract the VGA framebuffer into a rendering API. Figured it would take me an entire evening to port across. Recompiled and run in 15 minutes. Which left me another 15 minutes before I went out to catch the bus to do my weekly shopping.
Re: (Score:2)
Why use the new language of the month when C has been around for decades, is welll understood and does exactly what we want?
If C did exactly what we want, there wouldn't be buffer-overflow exploits in any C code. The fact that we receive security advisories on a regular basis regarding C-based software shows that our C code often does rather more than we intended it to.
Re: (Score:2)
C has been around for decades, is welll understood and does exactly what we want?
Because it doesn't do exactly what you want. Decades of C usage has lead to decades worth of security problems. The history of security flaws in programs written in C has been a costly one. Rust doesn't solve the whole security problem but it offers memory safety features that C doesn't.
Re: (Score:2)
Learn to program. Learn your tools.
Decades worth of security problems have clearly demonstrated that no one has learnt to program and no one has learnt their tools. It's naive to claim otherwise.
Re: (Score:2)
Unless you believe, as I do, that the majority of those security problems stem from dev cycle time pressure, mismanagement, and inadequate QA.
So your argument is that it is more difficult and it takes longer to get C programs right and, as a consequence, C creates organizational complexity and overhead.
You've made a strong case for everyone to save time and money by using Rust.
Re: (Score:2)
There's no silver bullet, and the problems are institutional, not technical.
The technical problems create the institutional problems. You said you need more support and hand-holding to develop in C. You said you needed management to cosset you and QA to find your mistakes for you.
Rust helps you make fewer mistakes and to be more independent.
Re: (Score:2)
These have nothing to do with the technical features of the language.
Review what you have previously said. You said C is more difficult to use and takes longer to get right. The technical features of the C language create the necessity of an organizational perfection that will never exist.
Rust eliminates some classes of mistakes
So you agree Rust helps you make fewer mistakes and saves time and money over C. We're not actually arguing here.
Re: (Score:2)
making mistakes you shouldn't be making anyway, if you know what you're doing
You're arguing for a fantasy world that doesn't exist. This is naive. Decades worth of C usage has demonstrated that it will never exist.
All you have done is effectively make the case for the necessity of languages like Rust. You have convinced me that Rust is the better choice over C.
Re: (Score:2)
Re:But why? (Score:4, Insightful)
Portability. Think of C as a portable assembler.
Re: (Score:2)
So think of Rust as a highlevel portable C abstraction.
Re: (Score:2)
I'm looking forward to the Rust community adding these features.
Re: (Score:2)
Re: (Score:2)
Why use compiled language of the month when assembly has been around for decades, is well understood and does exactly what you want?
If you need the low-level optimization available with assembly and not compiled languages, sure, go ahead. There are people who can and do exactly that, when even C isn't lean enough. As far as "why C?", well' it's simple. C has been around for 40+ years, supports every kind of system on the planet, has the largest set of libraries in the world, and has compilers so optimized they can spit out assembly that runs nearly as fast as if it was hand-optimized. When Rust can claim, say, half of those qualities, t
Fuck off with Rust spam (Score:3, Informative)
And wake me up when Rust stop being a cult and becomes an actually useful language.
Why does Rust's community lack diversity? (Score:3, Interesting)
What I don't get is why the Rust community lacks diversity, despite them putting so much emphasis on supposedly supporting diversity.
Years ago, back when I was a Java developer, I would sometimes go to Java conferences. There would be men there. There would be women there. There were probably transsexuals there. There would be old adults and young adults. There would be people representing every possible skin color. There would be somebody from pretty much every major ethnicity. There would be practitioners
Re: (Score:2)
In my experience, the people who demand 'diversity' the most prefer to live in white ghettos.
Re: (Score:2)
For tha we would need to know your bitcoin address!
The future of rustlang is tied up with Mozilla (Score:5, Insightful)
Re: (Score:2)
Re: (Score:2)
Re: (Score:3)
Re: (Score:3)
Re:The future of rustlang is tied up with Mozilla (Score:5, Informative)
Python and Perl would have never made it, if people filtered by that logic.
Programming languages don't need a huge company backing them up, as long as there is enough of a community. If Rust folks are as zealous as the Ruby folks were during the Rails era, we will have a neat C++ replacement.
I have not used Rust yet and have even been critical (as in, just add those semantics to C++ somehow and don't create a whole new replacement) of it. But the community does seem to be building momentum.
A peek at module counts
http://www.modulecounts.com/ [modulecounts.com]
shows that the Rust community is quite active. They are not merely evangelizing it, but rapidly building value. It does not look like Mozilla is significantly driving it on the module front. It only has half the modules as Go (which is impressive for a zero-cost abstraction language compared to a language that is high level application language), but the modules seem to be accumulating at more than twice the speed now. Modules make the language.
I wish Nim had that kind of momentum though. That is a language better aligned for my purposes.
Rust and SJW Nonsense (Score:4, Insightful)
I was interested in learning Rust and perhaps using it for some personal projects, but then I discovered how the community seems to care so much about social engineering.
We're not allowed to use "Master" and "Slave". https://github.com/rust-lang/rust-buildbot/issues/2
We're required to rephrase old texts to fit into "gender non-binary" language. https://github.com/rust-lang/rust/pull/25640
I'm sure they don't have problems "killing child processes" though...
etc., etc.
I'm not interested in using a programming language as some kind of social engineering experiment.
Rust: an example of Autism-Driven Development? (Score:4, Interesting)
I don't intend this to be taken as a joke in any way, nor do I intend it to be unnecessarily mean, but I think that the Rust community inadvertently discovered a new paradigm of software development: Autism-Driven Development.
When we look at what they've created, both from a technological standpoint and from a community standpoint, I can't help but notice the impact that Asperger Syndrome may have had on how things have developed.
Let's start with the community. While the communities of languages like Perl, C++, Python, Java and C# developed organically over time, it is almost as if the Rust community has been manufactured instead. It's like the community's interactions have been scripted, to use a programming analogy. It seems to me that the Rust Code of Conduct may actually be there as a way to allow people who suffer from varying degrees of social ineptitude to interact in a way that mimics how they see other, naturally-formed programming language communities made of sociable individuals interacting. They wouldn't be able to manage this social interaction on their own. But if you give them a script or a checklist they can follow, they can at least engage in something that appears, on the surface, to be socializing. That's why I think their incorporation of social justice is quite interesting. In many ways the concepts of social justice are all about imposing a foreign order on what is naturally a very chaotic and perhaps unfair reality.
The language and its standard library also reflect behavior that may be expected from those suffering from Asperger Syndrome. While creating the language, it is as if its developers haven't been able to make the normal trade-offs that other language developers have made with ease. We've seen this result in Rust, as a language, constantly change over time. It's like they're striving for some unattainable form of perfection that most normal people would realize could not be attained. While other people would accept some drawbacks to their creation and move on, the Rust community appears to waver back and forth, unable to really make up its mind about how to proceed. Even the supposedly stable Rust 1.x release branch has seen 19 minor releases!
I think the complexity of the language also reflects the role that, I suspect, Asperger Syndrome has had on the development of Rust. It has become an immensely complex and convoluted language, even compared to a rather complex language like C++. It's like the language has been designed, perhaps unintentionally, to be cryptic and unwelcoming to normal people. By its very nature it is like it is trying to be self-isolating, to avoid having to interact with the world and the people around it. Programming languages like Java, Python, C++, Perl and PHP want to be used by normal people. Those languages evolved in ways that draw in new users. But Rust? It has evolved to become very difficult and awkward to use, especially for new, average users.
From what I can see, the entire Rust ecosystem exhibits the traits that have come to be associated with Asperger Syndrome, or autism in general. Rust has a certain natural awkwardness to it; a inherent difference from every other programming language and programming language community that exists. It's like it wants to fit in, yet no matter how hard it tries it just can't. It's like, in my opinion, the entire Rust ecosystem lacks a natural understanding or ease of existence that other programming language ecosystems develop naturally.
I am just speculating here, as I do not know any of the Rust developers on any personal level, but could it be that mild/moderate autism or some degree of Asperger Syndrome has influenced how the Rust programming language has developed? If the developers of a programming language exhibit autism or Asperger Syndrome, could they in turn pass this on, so to speak, to a programming language and a related community that they have created? Could Rust be an example of, for lack of a better term, Autism-Driven Development?
By now the propaganda alone is reason to stay away (Score:5, Interesting)
Something that gets this much hype cannot be good, or the hype would not be needed. Seems to me some cretins are using Rust as a religion-surrogate.
Re: (Score:2)
Why do you call the once a year mentioning of Rust a Hype? /.
Typical american?
You know something, which most people don't know, you get news about it "again" and then you call it a hype?
I would assume that 90% or more "developers" or "programmers" never ever have heard about Rust.
I only know Rust because it is occasionally mentioned on
This "hype scare" is a quite strange thing for us europeans.
Re: (Score:2)
Jeez.
I wonder what would happen if brilliant and smooth-talking developers like Linus Torvalds or Theo de Raadt joined the rust community.
Python and LLVM (Score:2)
Being able to represent the sort of thing you'd use C or C++ for as a data structure within Python, and then turn into binary via LLVM is something I've been wishing for for a long time. I imagine I'll need to keep wishing for a while longer, but things like numba (in python), and application of LLVM like LLVMPipe, and the Synthesis OS project from a few years back suggest the pieces for doing this are gradually appearing.
Wake me up... (Score:4, Insightful)
Or for argument's sake, Mozilla itself.
Every language has it pitfalls, at least with ye olde C/C++ I know where to look and what to expect.
Suddenly you start to respect and embrace the get-off-my-lawn attitude, you simply want things to work rather than be written in the next greatest language of the moment.
I think I'm ready to deal with my dad now
Rust fans remiond me of Rush fans... (Score:4, Insightful)
Re: (Score:2)
It looks like C with a few nasty bits taken out. Not enough of a step forwards to be justified IMHO.
GTFO Rust (Score:3)
Re: (Score:2)
Rust can go and, well, rust. If you want to get safer C, than add Cyclone support to gcc and use that.
Why bother? Rust and C++ are much more powerful alternatives to C with similar machine models. Why on earth would I want to use a language where everything has to be micromanaged by hand.
no learning a new language,
Oh the horror!
Julia! (Score:2, Interesting)
I make money doing embedded C. If I am going to replace C with something else it will be Julia. I get the speed of C, the coding efficiency of Python and real support for computational algorithms.
Why replace C with Rust and not C++? (Score:2)
Well,
C++ might be a bit ugly when it comes to templates, but for that you have typedef.
Nothing against Rust, it looks like a decent enough language (exept for the name, looks like the inventors like to repeat the subvers-ive/ion failure).
Anyway: why would one replace C with Rust instead of C++ is beyond me.
If you write new code, then I would probably agree, but for existing old code I see no justification.
I wonder if there is a Rust to JVM compiler ... googeling a bit ...
This is What Happens When Developers Make Business (Score:4, Informative)
This is what happens when developers make business decisions. Seriously, why is Mozilla focused on promoting/using/developing Rust, when they could be focused on making their browser suck less? Probably because they have no business concerns, at all, about making a viable product (or company.) I spent two weeks exclusively using Firefox, right when Google was found to be recording everything I said, in the event I happened to say "OK Google" without a way to turn this off. After two weeks, I realized I'd rather be bugged than use Firefox any longer.
This is exactly what Joel Spolsky wrote about, when Netscape did a complete rewrite here [joelonsoftware.com], or in his awesome book Joel on Software [amazon.com] . Netscape focused on a rewrite, instead of making their browser suck less.
It sounds like Netscape made this mistake and then became Firefox. Now, it seems like Firefox is making the exact same mistake. This has to be the funniest business case study ever.
Re: (Score:2)
By replacing small pieces of Firefox with new pieces that use Rust, they are avoiding the Netscape problem. They aren't rewriting the whole thing. But one day the whole browser will be Rust, replaced a piece at a time.
You don't think Microsoft Edge still uses pieces of Spyglass or Mosaic do you? And yet, at no point did they rewrite the whole thing.
What happens to Rust when Mozilla is gone? (Score:3, Insightful)
Rust is very tied to Mozilla. And Mozilla's only remaining "successful" product is Firefox. But Firefox's market share is dropping. It was only a few percent, last I saw, while Chrome is over 50%. Mozilla reportedly gets a lot of funding from Yahoo, due to a Firefox search deal. So here we have an organization with one major product, but this project is being rejected by consumers, and what might be this organization's most significant source of revenue comes from this failing product and is paid for by ano
Re: (Score:2, Informative)
As C has been constantly in the top 3 languages that coder positions are offered for and C does not tie you to a SJW infected cult, this is not even a valid comparison. Rust is a hype-du-jour, with its proponents blind to its shortcomings. They are retards that still think coding is all about the language you do it in (which is about as far from the truth as you can get, and which has been known to smart people for something like half a century) and Rust is their chosen deity that can do no wrong.
When Mozil
Re: (Score:2)
They are retards that still think coding is all about the language you do it in (which is about as far from the truth as you can get, and which has been known to smart people for something like half a century
Smart people have also claimed the exact opposite. [azquotes.com]
Re: (Score:2)
Exactly.
And that is why we still see ppl on /. who argue functional or object oriented is evil.
Re: (Score:2)
Re: (Score:2)
Exactly my point. /. is full with people who consider "new things for nerds" evil instead of interesting.
However
No one has to use Rust. But it has lots of nice features. Self proclaimed experts here should acknowledge that.
Re: (Score:2)
Re:What happens to Rust when Mozilla is gone? (Score:5, Funny)
As C has been constantly in the top 3 languages that coder positions are offered for
But those "coder positions" are for white males only. C was designed in the 1960s, when colonialism was still rampant, and that is reflected in the language design. C ignores array bounds just as the imperial powers ignored the boundaries of tribal societies. Rust can free us from syntactic oppression, and provides "safe spaces" for everyone's data regardless of their culture or previous gender.
Re: (Score:2)
Re: (Score:2)
Laugh if you must, but do you really think there will be justice in the world as long as a transgender person of color has to put an asterisk next to their address just to dereference their own data?
Re: (Score:2)
Re: (Score:2)
C ignores array bounds
According to a co-worker of mine, that wasn't always the case.
When he was a student in the early 1980s, the C compiler, installed on the BSD Unix systems at his college, generated array bounds checking, pointer de-reference checking and a few other run-time "sanity checks". He also said there were options to disable these features.
While I can certainly understand that re-adding these checks to the code generated by the C compiler would reduce performance, I doubt it would be any worse than the performance o
Re: (Score:2)
Honestly, I rather code in Rust than C. ... (regardless of old or .Net), it makes me eye cancer and brain cancer same time. ... and get lost in the labyrinth of braces ...
Yes, a lot of coding *is* about the language, and the eco system of tools and libraries in that "platform", that is e.g. why Java is so widely successful. As a language It is just a simpler C++ but with VM and libraries and tools it is far beyond everything else.
E.g. I never would code in VB
I rather take the bullet and code in Lisp/Scheme
Re: What happens to Rust when Mozilla is gone? (Score:2)
Re: (Score:3)
Is Firefox developed in Rust?
It's just now starting to be. Mozilla's research browser, Servo [servo.org], is written in Rust and they have started to integrate Servo components into Firefox [mozilla.org]. Components like Servo's WebRender significantly outperform [youtube.com] other browsers.
Re: (Score:2)
Re: (Score:2)
Rust has a lot of language design elements that make code far safer. For example there is no null pointer or pointers at all for that matter in normal safe programming. You declare an object, either on the stack, or the heap
Re: (Score:2)
Re: (Score:2)
My own experience of the language is that it is very challenging to start, more so I suspect for people coming from C than perhaps
Re: (Score:2)
I have not been paying attention to Rust (I still see Python as that "new thing", like Perl but with whitespace, so haven't even looked at the newer trendier things) but you've got me curious now. What sort of things give the Rust community that reputation?
that Rustfags to you, (Score:2)
Re: (Score:3)
When people whine about how the stories aren't techy enough, thye get modded up. But apparently people who whine when stories realy are only for nerds (along with some gratuitous homophobic slurs) also get modded up.
Seems like some people will never be happy.
Re: (Score:2)
Even in a modestly large group somebody will always be unhappy, but since opinions are like assholes meaning everybody's got one I'll share mine - the opinion that is, the rest I leave for the goatse.cx guy. The articles here have always sucked donkey balls, they're an untimely mess from an odd selection of subjects and done better by many other sites. The value has always been the discussion, which means the valuable articles have been those who create an interesting discussion. Sometimes there's been very
Re: (Score:2)
Why not come up with a coding dictionary first. Agree on the words, write/print, var make let, and the list goes on. Agree on the fucking words to be used at least before arguing over their arrangements. Agree on which symbols do what. Come up with reasons for any choices. We are going to keep churning languages driven by nothing but the greed of people pushing specific languages, reality is coders seem to be nothing more than a bunch of purposefully argumentative fuckups who do not want to agree on anythin
Re: (Score:2)
+1 for making me laugh :) Satire at its best
Re: (Score:2)
Opera is still around but AFAIK was bought by some Chinese company.
So your only option seems to be a Mac.
Re: (Score:3)
Since 5 years or so Firefox is autoupdating (you can not disable it) and causing problems over problems (failed updates etc. or UI changes). Why Mozzial.org thinks removing the menu bar and having a "hamburger menu" instead is a good thing is beyond me. Most people tried to revert but could not, then they deleted FF and went to other browsers.
None of my friends is using FF anymore. I only use it when a software project demands FF compatibility and we have to use it for tests. Or for fancy GreeseMonkey scrip
Re: (Score:2)
You're not very observant, then. Percentage zoom indicator. What's that there for? There are two zoom sizes I care about - too big and too small, and it takes up a lot of space on a small screen. Refresh, reader view (whatever that is) & back button all tied to the URL when they used to placeable wherever you like. Fitt's law, you cunts.