Content deleted Content added
TurboSuperA+ (talk | contribs) flow, fixed wikilinks |
Added reference and wiki-link to notable publishers in various references Tag: Disambiguation links added |
||
Line 24:
}}
'''V''', also known as '''vlang''', is a [[Static type checking|statically typed]], [[Compiled language|compiled]] [[programming language]] created by Alexander Medvednikov in early 2019.{{Sfn|Rao|2021}} It was inspired by [[Go (programming language)|Go]], and other programming languages including [[Oberon (programming language)|Oberon]], [[Swift (programming language)|Swift]], and [[Rust (programming language)|Rust]].<ref>{{cite web |last1=Lewkowicz |first1=Jakub |title=SD Times news digest: V language now open sourced |url=https://sdtimes.com/softwaredev/sd-times-news-digest-v-language-now-open-sourced-smartbear-acquires-bdd-provider-cucumber-and-kaggle-integrates-into-bigquery|publisher=[[SD Times]] |website=SD Times |date=25 June 2019 |access-date=25 June 2019}}</ref><ref name="hackaday">{{cite web |last1=James |first1=Ben |date=23 July 2019 |title=The V Programming Language: Vain Or Virtuous? |url=https://hackaday.com/2019/07/23/the-v-programming-language-vain-or-virtuous/ |access-date=23 July 2019
The goals of V include ease of use, [[Computer programming#Readability of source code|readability]], and [[Maintainability#Software|maintainability]].<ref name="Knott">{{cite web |last1=Knott |first1=Simon |date=27 June 2019 |title=An introduction to V |url=https://simonknott.de/articles/vlang/ |access-date=27 June 2019}}</ref><ref name="nasufi">{{cite web |last1=Nasufi |first1=Erdet |title=An introduction to V - the vlang|url=https://debconf22.debconf.org/talks/69-an-introduction-to-v-the-vlang/ |website=Debian Conference ([[Debian Conference|DebConf]]) |access-date=24 July 2022}}</ref><ref name="techgig">{{cite web |author1=Gaurav Sharma |title=Exploring the newest programming languages for developers in 2024 |url=https://content.techgig.com/technology/exploring-the-newest-programming-languages-for-developers-in-2024/articleshow/108624842.cms |publisher=[[TechGig.com]] |website=TechGig |date=March 19, 2024}}</ref>
==History==
According to various sources, the new language was created as a result of frustration with existing languages being used for personal projects.<ref name="SYNCS 2023">{{cite web |title=How To Maintain And Iterate With V - SYNCS 2023 (Sydney Computing Society at the University of Sydney)|url=https://www.youtube.com/watch?v=pchEsYwA74Q |website=YouTube | date=18 October 2023 |access-date=18 October 2023}}</ref>{{sfn|Chakraborty|2023}}{{Sfn|Trex|2024}} The language was originally intended for personal use, but after it was mentioned publicly and gained interest, it was decided to make it public. V was initially created to develop a desktop messaging client named Volt.<ref name="hackaday"/> On public release, the compiler was written in V, and could [[Self-hosting (compilers)|compile itself]].{{Sfn|Rao|2021}}{{sfn|Chakraborty|2023}} Key design goals in creating V were being easy to learn and use, higher readability, fast compiling, increased safety, efficient development, [[Cross-platform software|cross-platform]] usability, improved [[C (programming language)|C]] [[interoperability]], better [[Error detection and correction|error handling]], modern features, and more maintainable software.{{Sfn|Independent Laboratory|2020}}{{Sfn|Lyons|2022}}<ref name="nasufi"/><ref>{{cite web |title=V language: simple like Go, small binary like Rust|url=https://techracho.bpsinc.jp/hachi8833/2021_03_09/89457/ |website=TechRacho |access-date=3 March 2021}}</ref>
V is released and developed through [[GitHub]],<ref>{{cite web |url=https://ossinsight.io/analyze/vlang/v#overview |title=GitHub Programming Languages (repository details) |via=[[Open-source software|OSS]] Insight using [[TiDB]]}}</ref><ref name="hackaday"/> and maintained by developers and contributors internationally.{{Sfn|Rao|2021}}{{Sfn|Trex|2024}} It is among the languages that have been listed on the [[TIOBE index]].<ref>{{cite web |title=TIOBE Index |url=https://www.tiobe.com/tiobe-index |publisher=[[TIOBE]]|website=tiobe |archive-url=https://web.archive.org/web/20250411043213/https://www.tiobe.com/tiobe-index/|archive-date=11 April 2025|access-date=11 April 2025}}</ref>
[[File:Veasel.svg|thumb|Veasel is the official mascot of the V programming language<ref>{{cite web |url=https://github.com/vlang/v-mascot/ |title=V's official mascot |website=GitHub |access-date=8 November 2023}}</ref>]]
Line 39:
===Safety===
V has policies to facilitate memory-safety, speed, and secure code,<ref name="MUO">{{cite web |last1=Galuh |first1=Rosa |title=A Brief Introduction to the V Language |url=https://www.makeuseof.com/v-language-brief-introduction |publisher=[[Valnet]]|website=MakeUseOf (MUO) |date=8 August 2022 |access-date=8 August 2022}}</ref><ref name="HA">{{cite web |last1=Abbas |first1=Hazem |title=Introduction to V Language and Desktop App Development |url=https://medevel.com/v-desktop-app-tutorial/ |website=medevel |date=5 August 2024 |access-date=3 January 2025}}</ref>{{Sfn|Trex|2024}} including various default features for greater program safety.<ref name="section"/><ref name="MUO"/>{{Sfn|Trex|2024}} It employs [[bounds checking]], to guard against out of bounds use of [[Variable (computer science)|variables]]. Option/result [[Type system|types]] are used, where the option [[data type]] ({{code|?}}) can be represented by {{code|none}} (among possible choices) and the result type ({{code|!}}) can handle any returned errors. To ensure greater safety, error checking is mandatory. By default, the following are [[immutable]]: variables, structs, and [[Function (computer programming)|function]] [[Parameter (computer programming)|arguments]]. This includes string values are immutable, so elements cannot be mutated. Other protections, which are the default for the language, are: no use of [[undefined value]]s, [[variable shadowing]], [[null pointer]]s (unless marked as unsafe), or [[global variable]]s (unless enabled via flag).
=== Performance ===
V uses [[value type]]s and string buffers to reduce memory allocations.{{sfn|Rao|2021|p=7}}<ref>{{cite web |title=The V programming language is now open source |url=https://hub.packtpub.com/the-v-programming-language-is-now-open-sourced-is-it-too-good-to-be-true// |publisher=[[Packt Publishing]] |website=Packt Hub |date=24 June 2019 |access-date=24 June 2019}}</ref><ref name="MUO"/> The language can be compiled to human-readable C,{{Sfn|Rao|2021}} and in terms of execution and compilation, it's considered to be as performant.<ref name="MUO"/>{{Sfn|Trex|2024}}
=== Memory management ===
Line 177:
* {{Cite book |last1=Rao |first1=Navule Pavan Kumar |date=December 10, 2021 |title=Getting Started with V Programming |publisher=[[Packt Publishing]] |isbn=978-1839213434 |language=en |oclc=1290492862}}
* {{Cite book |last1=Lyons |first1=Dakota "Kai" |date=April 13, 2022 |title=Beginning with V Programming |publisher=Independently Published |isbn=979-8801499963 |language=en |ref=none}}
* {{cite journal |last1=Tsoukalos |first1=Mihalis |date=May 2022 |title=Discover the V language |publisher= [[Linux Format]]| journal=Linux Format Magazine |issue=288 |issn=1470-4234}}
* {{Cite book |last1=Chakraborty |first1=Soubhik |last2=Haldar |first2=Subhomoy |date=December 6, 2023 |title=Randomness Revisited using the V Programming Language |publisher=[[Nova Science Publishers]] |isbn=979-8891133280 |language=en |ref=none |doi=10.52305/CVCN5241 |s2cid=265170755}}
* {{Cite book |last1=Trex |first1=Nova |date=24 December 2024 |title=V Programming: Building Robust and Efficient Software Systems |publisher=Wang Press |isbn=979-8304813778}}
|