Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Cross-platform software
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
===Traditional applications=== Web applications are becoming increasingly popular but many computer users still use traditional application software which does not rely on a client/web-server architecture. The distinction between traditional and web applications is not always clear. Features, installation methods and architectures for web and traditional applications overlap and blur the distinction. Nevertheless, this simplifying distinction is a common and useful generalization. ====Binary software==== Traditional application software has been distributed as binary files, especially [[executable file]]s. Executables only support the platform they were built for—which means that a single cross-platform executable could be very bloated with code that never executes on a particular platform. Instead, generally there is a selection of executables, each built for one platform. For software that is distributed as a binary executable, such as that written in C or C++, there must be a [[software build]] for each platform, using a toolset that translates—transcompiles—a single codebase into multiple binary executables. For example, [[Firefox]], an open-source web browser, is available on Windows, macOS (both [[PowerPC]] and x86 through what [[Apple Inc.]] calls a [[Universal binary]]), Linux, and BSD on multiple computer architectures. The four platforms (in this case, Windows, macOS, Linux, and BSD) are separate executable distributions, although they come largely from the same [[source code]]. In rare cases, executable code built for several platforms is combined into a single executable file called a [[fat binary]]. The use of different toolsets may not be enough to build a working executables for different platforms. In this case, programmers must ''[[porting|port]]'' the source code to the new platform. For example, an application such as Firefox, which already runs on Windows on the x86 family, can be modified and re-built to run on Linux on the x86 (and potentially other architectures) as well. The multiple versions of the code may be stored as separate codebases, or merged into one codebase. An alternative to porting is ''[[cross-platform virtualization]]'', where applications compiled for one platform can run on another without modification of the source code or binaries. As an example, Apple's [[Rosetta (software)|Rosetta]], which is built into [[Intel]]-based Macintosh computers, runs applications compiled for the previous generation of Macs that used PowerPC CPUs. Another example is IBM [[Lx86|PowerVM Lx86]], which allows Linux/x86 applications to run unmodified on the Linux/Power OS. Example of cross-platform binary software: * The [[LibreOffice]] office suite is built for Microsoft Windows, macOS, Linux, [[FreeBSD]], [[NetBSD]], [[OpenBSD]], [[Android (operating system)|Android]], [[iOS]], [[iPadOS]], [[ChromeOS]], web-based [[Collabora Online]] and many others.<ref>{{Cite news|last=Mehrotra|first=Pranob|date=2020-12-01|title=Collabora Office suite gets a new layout for Android tablets and Chromebooks|work=XDA-Developers|url=https://www.xda-developers.com/collabora-office-suite-gets-layout-android-tablets-chromebooks/|access-date=2021-01-15|quote=Collabora Office is a popular open-source alternative to the Microsoft Office suite. It's based on LibreOffice, and it's available on a variety of platforms, including Windows, Linux, iOS, and Android. This year in July, a major update for the office suite brought support for Chrome OS devices.}}</ref><ref name=":1">{{Cite news|last=|first=|date=2020-12-15|title=Collabora Office on iOS and Android Just got Better!|work=Adfinis|url=https://adfinis.com/en/blog/collabora-office-on-ios-and-android-just-got-better/|access-date=2021-01-15|quote=...touch optimized interfaces: one for tablets and one for phone screens. ...(iOS, iPadOS, Chromebooks, Android).}}</ref> Many of these are supported on several hardware platforms with processor architectures including [[IA-32]], [[x86-64]], [[ARM architecture family|ARM]] (ARMel, ARMhf, ARM64), [[MIPS architecture processors|MIPS]], [[Mipsel|MIPSel]], [[PowerPC]], [[Ppc64|ppc64le]], and S390x[9]<ref>{{Cite news|date=2021-03-26|title=Nextcloud Ubuntu Appliance adds Collabora Online to Raspberry Pi image|work=MuyLinux|url=https://www.muylinux.com/2021/03/26/nextcloud-ubuntu-appliance-collabora-online-raspberry-pi/|access-date=2021-03-30|quote=the first viable self-hosted web office solution for the popular Raspberry Pi 4 platform}}</ref> ====Scripts and interpreted languages==== A script can be considered to be cross-platform if its [[Interpreter (computing)|interpreter]] is available on multiple platforms and the script only uses the facilities built into the language. For example, a script written in [[Python (programming language)|Python]] for a [[Unix-like]] system will likely run with little or no modification on Windows, because Python also runs on Windows; indeed there are many implementations (e.g. [[IronPython]] for [[.NET Framework]]). The same goes for many of the [[open-source software|open-source]] [[scripting languages]]. Unlike binary executable files, the same script can be used on all computers that have software to interpret the script. This is because the script is generally stored in [[plain text]] in a [[text file]]. There may be some trivial issues, such as the representation of a [[newline|new line character]]. Some popular cross-platform scripting languages are: * [[Bash (Unix shell)|bash]] – A [[Unix shell]] commonly run on Linux and other modern Unix-like systems, as well as on Windows via the [[Cygwin]] [[POSIX]] compatibility layer, [[Git]] for Windows, or the [[Windows Subsystem for Linux]]. * [[Perl]] – First released in 1987. Used for [[Common Gateway Interface|CGI]] programming, small [[system administration]] tasks, and more. * [[PHP]] – Mostly used for web applications. * [[Python (programming language)|Python]] – A language which focuses on [[rapid application development]] and ease of writing, instead of run-time efficiency. * [[Ruby (programming language)|Ruby]] – An object-oriented language which aims to be easy to read. Can also be used on the web through [[Ruby on Rails]]. * [[Tcl]] – A dynamic programming language, suitable for a wide range of uses, including web and desktop applications, networking, administration, testing and many more.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)