├── CHANGELOG.md ├── LICENSE ├── README.md ├── _layout.html ├── app.css ├── arabic.tr ├── bahasa.tr ├── bosnian.tr ├── catalan.tr ├── chinese.tr ├── compare.html ├── english.tr ├── french.tr ├── german.tr ├── img ├── arrow-left.png ├── arrow-right.png ├── book.jpg ├── doom.png ├── down.png ├── emacs.png ├── gg.png ├── patreon.png ├── sponsor_chipnetics.svg ├── sponsor_mx.png ├── sponsor_syndica.jpg ├── sponsor_threefold.svg ├── sublime.png ├── v-logo.png ├── veasel.png ├── vim.png ├── vscode.png ├── youtube_comp_speed.png └── youtube_compile_speed.png ├── index.html ├── indonesian.tr ├── japanese.tr ├── norwegian.tr ├── portuguese.tr ├── preview.html ├── russian.tr ├── spanish.tr ├── turkish.tr └── website2_v ├── index.html ├── main.v ├── static ├── app.css └── img │ ├── arrow-left.png │ ├── arrow-right.png │ ├── book.jpg │ ├── book2.jpg │ ├── book_copy.jpg │ ├── doom.png │ ├── down.png │ ├── emacs.png │ ├── engine_screenshot.png │ ├── gg.png │ ├── huly.png │ ├── intellij.png │ ├── mastodon.png │ ├── patreon.png │ ├── sponsor_chipnetics.svg │ ├── sponsor_mx.png │ ├── sponsor_octoberswimmer.png │ ├── sponsor_syndica.jpg │ ├── sponsor_syndica_copy.jpg │ ├── sponsor_threefold.svg │ ├── sublime.png │ ├── v-logo.png │ ├── veasel.png │ ├── veery.jpg │ ├── vim.png │ ├── vscode.png │ ├── youtube_comp_speed.png │ └── youtube_compile_speed.png ├── templates ├── footer.html ├── header.html ├── header_component.html └── products.html ├── translations ├── en.tr ├── es.tr └── ru.tr └── v.mod /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # V 0.1.13 2 | - The website was made easily translatable, it's now partially available in several languages. 3 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Alexander Medvednikov 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # The V Programming Language Website 2 | 3 | https://vlang.io 4 | 5 | *note: You can't run this site locally, because of proprietary backend, but you can preview the html file `preview.html` for styling css.* 6 | 7 | ## How To Contribute 8 | 9 | There are various way you can contribute to this project. Refactoring writings, updating css, Adding Language support etc. We will cover them one by one. 10 | 11 | ### Styling the website 12 | 13 | There is `app.css` file which is the main stylesheet. Use `preview.html` to view the rendered html file. This will help you style the website. 14 | 15 | ### Adding Language 16 | 17 | Use the `english.tr` as a reference to add your translation to this project. 18 | 19 | -------------------------------------------------------------------------------- /_layout.html: -------------------------------------------------------------------------------- 1 | @define "header" 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | @css "app.css?43" 11 | 14 | The V Programming Language 15 | 16 | 17 |
18 | 19 |
20 |
21 | 22 | 23 | 41 | 56 |
57 |
58 | @end 59 | 60 | @define "footer" 61 | 62 | 63 | @end 64 | -------------------------------------------------------------------------------- /app.css: -------------------------------------------------------------------------------- 1 | .select { 2 | position: relative; 3 | display: inline-block; 4 | width: 100% 5 | } 6 | 7 | .select select { 8 | font-size: 14px; 9 | display: inline-block; 10 | width: 100%; 11 | cursor: pointer; 12 | padding: 10px 15px; 13 | outline: 0; 14 | border: none; 15 | border-radius: 8px; 16 | overflow: hidden; 17 | background: #334; 18 | color: #ccc; 19 | appearance: none; 20 | -webkit-appearance: none; 21 | -moz-appearance: none 22 | } 23 | 24 | .select select::-ms-expand { 25 | display: none 26 | } 27 | 28 | .select select:focus, 29 | .select select:hover { 30 | color: #ddd; 31 | background: #445 32 | } 33 | 34 | .select select:disabled { 35 | opacity: .5; 36 | pointer-events: none 37 | } 38 | 39 | .select_arrow { 40 | position: absolute; 41 | pointer-events: none; 42 | top: 12px; 43 | right: 15px; 44 | width: 0; 45 | height: 0; 46 | border: solid #aaa; 47 | border-width: 0 3px 3px 0; 48 | display: inline-block; 49 | padding: 3px; 50 | transform: rotate(45deg); 51 | -webkit-transform: rotate(45deg) 52 | } 53 | 54 | .select select:focus~.select_arrow, 55 | .select select:hover~.select_arrow { 56 | border-color: #ccc 57 | } 58 | 59 | .select select:disabled~.select_arrow { 60 | border-top-color: #ccc 61 | } 62 | 63 | .svg-inline--fa { 64 | display: inline-block; 65 | font-size: inherit; 66 | height: 1em; 67 | overflow: visible; 68 | vertical-align: -.125em 69 | } 70 | 71 | .svg-inline--fa.fa-w-14 { 72 | width: .875em 73 | } 74 | 75 | body, 76 | html { 77 | height: 100% 78 | } 79 | 80 | body { 81 | margin: 0; 82 | font-family: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif 83 | } 84 | 85 | .content { 86 | grid-area: content; 87 | height: 100%; 88 | width: 100% 89 | } 90 | 91 | #app { 92 | display: grid; 93 | grid-template-columns: 1fr; 94 | grid-template-rows: 72px 1fr; 95 | grid-template-areas: "header" "content"; 96 | width: 100% 97 | } 98 | 99 | a { 100 | color: #4078c0; 101 | text-decoration: none 102 | } 103 | 104 | .flex { 105 | flex: 1 106 | } 107 | 108 | button:focus, 109 | input:focus, 110 | textarea:focus { 111 | outline: 0 112 | } 113 | 114 | .faq { 115 | max-width: 900px; 116 | margin-left: auto; 117 | margin-right: auto; 118 | margin-bottom: 64px 119 | } 120 | 121 | .faq #faq { 122 | text-align: center; 123 | font-weight: 500 124 | } 125 | 126 | .faq .question { 127 | margin-bottom: 46px 128 | } 129 | 130 | .faq table { 131 | border-collapse: collapse 132 | } 133 | 134 | .faq td { 135 | border: 1px solid #dfdfdf; 136 | padding: 8px 12px 137 | } 138 | 139 | @media (max-width:1100px) { 140 | #app { 141 | grid-template-rows: auto 1fr 142 | } 143 | } 144 | 145 | .codeblock { 146 | background: #334; 147 | padding: 12px 12px 4px 12px; 148 | max-width: calc(100vw - 56px); 149 | border-radius: 6px; 150 | margin: 0; 151 | color: #c9c5c4; 152 | font-size: 15px; 153 | position: relative; 154 | font-family: "Roboto Mono", "Courier New", Menlo, "DejaVu Sans Mono", Monaco, Courier, monospace 155 | } 156 | 157 | .codeblock .play-btn-fixed { 158 | position: absolute; 159 | top: 10px; 160 | right: 10px 161 | } 162 | 163 | .codeblock pre { 164 | overflow-x: auto; 165 | overflow-y: hidden; 166 | line-height: 1.2; 167 | font-family: "Roboto Mono", "Courier New", Menlo, "DejaVu Sans Mono", Monaco, Courier, monospace; 168 | white-space: pre-wrap 169 | } 170 | 171 | .codeblock textarea { 172 | font-size: 15px; 173 | line-height: 1.2; 174 | font-family: "Roboto Mono", "Courier New", Menlo, "DejaVu Sans Mono", Monaco, Courier, monospace; 175 | position: absolute; 176 | top: 25px; 177 | left: 10px; 178 | height: calc(100% - 48px); 179 | width: calc(100% - 22px); 180 | caret-color: #fff; 181 | color: transparent; 182 | background: 0 0; 183 | overflow: hidden; 184 | border: none; 185 | resize: none 186 | } 187 | 188 | .codeblock textarea.no-header { 189 | top: 25px 190 | } 191 | 192 | .codeblock .titlebar { 193 | display: flex; 194 | align-items: center; 195 | margin-bottom: 6px; 196 | position: relative; 197 | top: -2px 198 | } 199 | 200 | .codeblock .play-btn { 201 | background: 0 0; 202 | border: none; 203 | margin: 0; 204 | background: #ffffff33; 205 | color: #ffeeeecf; 206 | border-radius: 4px; 207 | padding: 4px 12px; 208 | font-size: 12px; 209 | z-index: 10; 210 | cursor: pointer 211 | } 212 | 213 | .codeblock .play-btn svg { 214 | height: 1.1em 215 | } 216 | 217 | .codeblock .play-btn:hover { 218 | background: #ffffff55; 219 | color: #ffeeeedd 220 | } 221 | 222 | .codeblock .keyword { 223 | color: #dcd02d 224 | } 225 | 226 | .codeblock .return { 227 | color: #ea3b7b 228 | } 229 | 230 | .codeblock .key { 231 | color: #5f84ba 232 | } 233 | 234 | .codeblock .string { 235 | color: #ca763c 236 | } 237 | 238 | .codeblock .number { 239 | color: #b068e7 240 | } 241 | 242 | .codeblock .comment, 243 | .codeblock .separator { 244 | color: #9e9795 245 | } 246 | 247 | .codeblock .definition, 248 | .codeblock .type { 249 | color: #c5ac41 250 | } 251 | 252 | .documentation { 253 | display: flex; 254 | justify-content: center; 255 | max-width: 1200px; 256 | height: calc(100vh - 72px); 257 | padding-right: 6px; 258 | margin-left: auto; 259 | margin-right: auto; 260 | overflow-y: scroll 261 | } 262 | 263 | .documentation .toc { 264 | margin-right: 32px 265 | } 266 | 267 | .documentation .toc ul { 268 | padding-inline-start: 24px 269 | } 270 | 271 | .documentation .markdown { 272 | margin-left: 32px; 273 | padding-bottom: 64px; 274 | max-width: calc(100vw - 24px) 275 | } 276 | 277 | .documentation .markdown h1, 278 | .documentation .markdown h2, 279 | .documentation .markdown h3 { 280 | font-weight: 400 281 | } 282 | 283 | .documentation .markdown h1 { 284 | margin: 12px 0 285 | } 286 | 287 | .documentation .markdown h2 { 288 | margin: 32px 0 8px 0 289 | } 290 | 291 | .documentation .markdown h3 { 292 | margin: 8px 0 293 | } 294 | 295 | .documentation .markdown a { 296 | word-break: break-word 297 | } 298 | 299 | .documentation .markdown p { 300 | margin: 8px 0 301 | } 302 | 303 | .documentation .markdown p code { 304 | background: #eee; 305 | padding: 2px 6px; 306 | border-radius: 5px; 307 | font-size: 14px 308 | } 309 | 310 | .documentation .markdown .markdownIt-Anchor { 311 | color: #c3cad6 312 | } 313 | 314 | .documentation .markdown .markdownIt-Anchor:hover { 315 | color: #4078c0 316 | } 317 | 318 | .documentation .markdown .codeblock { 319 | margin-bottom: 4px 320 | } 321 | 322 | @media (max-width:1100px) { 323 | .documentation { 324 | height: calc(100vh - 143px) 325 | } 326 | } 327 | 328 | @media (max-width:845px) { 329 | .documentation { 330 | height: calc(100vh - 154px) 331 | } 332 | } 333 | 334 | @media (max-width:800px) { 335 | .documentation { 336 | flex-direction: column; 337 | align-items: center; 338 | height: 100%; 339 | overflow-y: visible; 340 | padding-right: 0 341 | } 342 | .documentation .markdown { 343 | margin-left: 8px 344 | } 345 | .documentation .toc { 346 | margin-right: 0; 347 | margin-bottom: 32px 348 | } 349 | } 350 | 351 | .header { 352 | grid-area: header; 353 | height: 100%; 354 | width: 100%; 355 | position: sticky; 356 | background: #fff; 357 | z-index: 100; 358 | top: 0; 359 | display: flex; 360 | align-items: center 361 | } 362 | 363 | .header .logo { 364 | width: 32px; 365 | margin-bottom: -3px; 366 | margin-right: 16px 367 | } 368 | 369 | .header .donate-button { 370 | display: flex; 371 | /*flex-direction: column;*/ 372 | align-items: center; 373 | margin-top: 2px; 374 | margin-left: 12px 375 | } 376 | 377 | .header .patreon img { 378 | height: 33px 379 | } 380 | 381 | .header .nav { 382 | display: flex; 383 | flex-wrap: wrap; 384 | justify-content: center 385 | } 386 | 387 | .header .nav a:hover { 388 | color:#333; 389 | } 390 | 391 | .header .nav .item { 392 | color: #777; 393 | text-decoration: none; 394 | padding-right: 18px; 395 | padding-left: 18px; 396 | font-size: 22px; 397 | font-weight: 300 398 | } 399 | 400 | .header .nav .item.active { 401 | color: #222b38 402 | } 403 | 404 | .header .donate-button .paypal { 405 | width: 80px; 406 | height: 33px; 407 | background: #3b7bbf; 408 | margin-bottom: 3px; 409 | border-radius: 3px; 410 | color: #fff; 411 | text-align: center; 412 | line-height: 32px; 413 | font-size: 15px; 414 | margin-left: 10px; 415 | } 416 | @media (max-width:1100px) { 417 | .header { 418 | position: static; 419 | flex-direction: column 420 | } 421 | .header .donate-button { 422 | flex-direction: row; 423 | margin-top: 8px; 424 | margin-left: 0; 425 | margin-bottom: 8px 426 | } 427 | .header .donate-button .patreon { 428 | margin-right: 12px 429 | } 430 | /* 431 | .header .donate-button .paypal { 432 | width: 168px; 433 | height: 33px; 434 | background: #3b7bbf; 435 | margin-bottom: 3px; 436 | margin-left: 10px; 437 | border-radius: 3px; 438 | color: #fff; 439 | text-align: center; 440 | line-height: 32px; 441 | font-size: 15px 442 | } 443 | */ 444 | .header .logo { 445 | width: 42px; 446 | margin-top: 8px; 447 | margin-bottom: 12px; 448 | margin-right: 0 449 | } 450 | } 451 | 452 | .landing .hero { 453 | display: flex; 454 | justify-content: space-evenly; 455 | align-items: center; 456 | width: calc(100% - 32px); 457 | max-width: 1200px; 458 | color: #444; 459 | margin: 32px 0; 460 | } 461 | 462 | .landing .hero .info { 463 | max-width: 500px 464 | } 465 | 466 | .landing .hero .info h1 { 467 | font-weight: 300; 468 | margin: 0 0 0 -2px 469 | } 470 | 471 | .landing .hero .info p { 472 | margin: 4px 0 473 | } 474 | 475 | .landing .hero .button { 476 | background: #222; 477 | color: #fff; 478 | margin-top: 16px; 479 | margin-right: 8px; 480 | padding: 7px 14px 6px 8px; 481 | border-radius: 6px; 482 | display: inline-flex; 483 | /*align-items: center;*/ 484 | cursor: pointer; 485 | position: relative 486 | } 487 | 488 | .landing .hero .button .svg-inline--fa { 489 | width: 32px; 490 | height: 32px; 491 | margin-right: 4px 492 | } 493 | 494 | .landing .hero .button .options-container .options { 495 | position: absolute; 496 | background: #fff; 497 | color: #333; 498 | border: 1px solid #eee; 499 | right: 0; 500 | top: 54px; 501 | box-sizing: border-box; 502 | border-radius: 6px; 503 | opacity: 0; 504 | pointer-events: none; 505 | transform: translateY(-12px); 506 | transition: all .2s cubic-bezier(.67, .16, .4, 1) 507 | } 508 | 509 | .landing .hero .button .options-container .options .dl-option { 510 | display: flex; 511 | padding: 8px 8px 8px 6px; 512 | align-items: center; 513 | color: #333 514 | } 515 | 516 | .landing .hero .button .options-container .options .dl-option .name { 517 | flex: 1; 518 | margin-right: 32px 519 | } 520 | 521 | .landing .hero .button .options-container .options .dl-option .size { 522 | color: #818e9c; 523 | font-size: 15px 524 | } 525 | 526 | .landing .hero .button .options-container .options .dl-option svg { 527 | margin-right: 6px; 528 | width: 22px; 529 | height: 22px 530 | } 531 | 532 | .landing .hero .button .options-container .options .dl-option:hover { 533 | background: #f7f7f7 534 | } 535 | 536 | .landing .hero .button .options-container:focus { 537 | outline: 0 538 | } 539 | 540 | .landing .hero .button .options-container:focus .options { 541 | opacity: 1; 542 | pointer-events: all; 543 | transform: translateY(0) 544 | } 545 | 546 | .landing .hero .button .options-container:active .right-icon { 547 | transform: translateY(3px) 548 | } 549 | 550 | .landing .hero .button .options-container .right-icon { 551 | width: 18px; 552 | padding: 12px 2px; 553 | cursor: pointer; 554 | transition: transform .1s 555 | } 556 | 557 | .landing .hero .button .text { 558 | display: flex; 559 | flex-direction: column; 560 | margin-right: 10px 561 | } 562 | 563 | .landing .hero .button .text .link { 564 | margin: 0 4px 0 8px; 565 | font-size: 15px 566 | } 567 | 568 | .landing .hero .button .text .details { 569 | color: #ddd; 570 | padding: 0 4px; 571 | font-size: 13px; 572 | line-height: 18px; 573 | border-radius: 4px; 574 | margin-left: 5px 575 | } 576 | 577 | .landing .hero .button .text .details svg { 578 | fill: #ddd; 579 | position: relative; 580 | top: 2px; 581 | left: -1px 582 | } 583 | 584 | .landing .hero .button .changelog, 585 | .landing .hero .button .fast { 586 | position: absolute; 587 | bottom: -24px; 588 | left: 0; 589 | color: #333; 590 | text-decoration: none 591 | } 592 | 593 | .landing .hero .button .changelog { 594 | left: auto; 595 | right: 0 596 | } 597 | 598 | .landing .hero .examples { 599 | margin-right: 32px; 600 | display: flex; 601 | flex-direction: column; 602 | align-items: center; 603 | position:relative; 604 | top: -30px; 605 | } 606 | 607 | .landing .hero .examples .menu { 608 | margin-top: 12px; 609 | display: flex; 610 | justify-content: center; 611 | align-items: center 612 | } 613 | 614 | .landing .hero .examples .menu button { 615 | background: 0 0; 616 | border: none; 617 | cursor: pointer 618 | } 619 | 620 | .landing .hero .examples .menu button i { 621 | font-size: 32px!important; 622 | color: #333 623 | } 624 | 625 | .landing .hero .examples .menu select { 626 | font-size: 18px 627 | } 628 | 629 | .landing .hero .examples .menu .select { 630 | margin: 0 16px; 631 | width: 200px 632 | } 633 | 634 | .landing .social, 635 | .landing .social a, 636 | .landing .social svg { 637 | display: flex; 638 | justify-content: center; 639 | align-items: center; 640 | } 641 | 642 | .landing .social { 643 | padding: 25px 0; 644 | gap: 10px; 645 | } 646 | 647 | .landing .social a { 648 | width: 30px; 649 | } 650 | 651 | .landing .social p { 652 | color: #444 653 | } 654 | 655 | .landing .social svg { 656 | font-size: 28px; 657 | cursor: pointer; 658 | color: #949fad; 659 | cursor: pointer; 660 | } 661 | 662 | .landing .social svg:hover { 663 | opacity: .8 664 | } 665 | 666 | .landing .social .fa-telegram { 667 | color: #08c 668 | } 669 | 670 | .landing .social .fa-youtube { 671 | color: red 672 | } 673 | 674 | .landing .social .fa-discord { 675 | color: #7289da 676 | } 677 | 678 | .landing .social .fa-twitter { 679 | color: #00acee 680 | } 681 | 682 | .landing .links { 683 | margin-top: 12px; 684 | margin-right: 38px; 685 | display: flex; 686 | flex-direction: row; 687 | flex-wrap: wrap; 688 | justify-content: space-between; 689 | font-size: 18px 690 | } 691 | 692 | .landing .links a:hover { 693 | opacity: .9 694 | } 695 | 696 | .landing { 697 | display: flex; 698 | flex-direction: column; 699 | justify-content: flex-start; 700 | align-items: center; 701 | background: linear-gradient(168deg, #fff 800px, #f6f9fc 800px); 702 | padding-bottom: 32px 703 | } 704 | 705 | .landing .section { 706 | display: flex; 707 | max-width: 1100px; 708 | width: calc(100vw - 32px); 709 | justify-content: space-around; 710 | margin-top: 32px; 711 | background: #fff; 712 | color: #222; 713 | border-radius: 6px; 714 | border: 1px solid #efefef 715 | } 716 | 717 | .landing .section h1, 718 | .landing .section h2 { 719 | font-weight: 300; 720 | margin: 0 721 | } 722 | 723 | .landing .section .block { 724 | flex: 1; 725 | padding: 18px 16px; 726 | margin: 12px; 727 | border-radius: 6px; 728 | } 729 | 730 | .landing .section .block td { 731 | width: 120px; 732 | line-height: 1.5 733 | } 734 | 735 | .landing .section .block td .sidenote { 736 | font-size: 75%; 737 | position: relative; 738 | top: -5px 739 | } 740 | 741 | .landing .section .block pre { 742 | white-space: pre-wrap; 743 | word-break: break-word 744 | } 745 | 746 | .landing ul { 747 | padding-inline-start: 22px 748 | } 749 | 750 | .landing i { 751 | max-width: calc(100vw - 64px); 752 | text-align: center; 753 | font-size: 14px 754 | } 755 | 756 | @media (max-width:1500px) { 757 | .landing .hero .examples .codeblock { 758 | min-width: auto 759 | } 760 | } 761 | 762 | @media (max-width:1200px) { 763 | .landing .hero { 764 | margin: 32px 0; 765 | flex-direction: column 766 | } 767 | .landing .hero .info { 768 | margin-bottom: 32px; 769 | text-align: center 770 | } 771 | .landing .hero .info .button { 772 | text-align: left 773 | } 774 | .landing .hero .info .button:last-child { 775 | margin-right: 0 776 | } 777 | .landing .hero .info .links, 778 | .landing .hero .info .social { 779 | margin-right: 0 780 | } 781 | .landing .hero .info .social { 782 | margin-top: 16px 783 | } 784 | .landing .hero .info .social i { 785 | font-size: 28px; 786 | margin-left: 6px; 787 | margin-right: 6px 788 | } 789 | .landing .hero .examples { 790 | margin: 0 8px 0 8px!important 791 | } 792 | .landing .editors { 793 | margin-right: 0 794 | } 795 | } 796 | 797 | @media (max-width:750px) { 798 | .landing .section { 799 | flex-direction: column 800 | } 801 | } 802 | 803 | .playground { 804 | display: flex; 805 | flex-direction: column 806 | } 807 | 808 | .playground .editor { 809 | display: flex; 810 | flex: 1 811 | } 812 | 813 | .playground .editor .codeblock, 814 | .playground .editor .output { 815 | flex: 1; 816 | margin: 6px 817 | } 818 | 819 | .playground .select { 820 | margin-left: 8px; 821 | width: 220px 822 | } 823 | 824 | @media (max-width:1100px) { 825 | .playground .editor { 826 | flex-direction: column 827 | } 828 | .playground .editor .codeblock { 829 | max-width: calc(100vw - 36px) 830 | } 831 | } 832 | 833 | .editors-info { 834 | max-width: 600px; 835 | text-align: center; 836 | margin-right: auto; 837 | margin-left: auto; 838 | margin-top: 32px 839 | } 840 | 841 | .editors-info h1 { 842 | font-weight: 300; 843 | margin: 0 0 0 -2px 844 | } 845 | 846 | .editors-info p { 847 | margin: 4px 0 848 | } 849 | 850 | .editors { 851 | display: flex; 852 | justify-content: space-evenly; 853 | width: calc(100vw - 32px); 854 | max-width: 600px; 855 | margin-top: 32px; 856 | margin-right: auto; 857 | margin-left: auto; 858 | flex-wrap: wrap 859 | } 860 | 861 | .editors .editor { 862 | display: flex; 863 | flex-direction: column; 864 | align-items: center; 865 | justify-content: center; 866 | background: #fff; 867 | color: #000; 868 | height: 100px; 869 | width: 125px; 870 | border: 1px solid #efefef; 871 | border-radius: 6px; 872 | text-decoration: none; 873 | box-shadow: none; 874 | cursor: pointer; 875 | margin-bottom: 16px; 876 | transition: transform .1s, box-shadow .1s 877 | } 878 | 879 | .editors .editor:hover { 880 | transform: translateY(-3px); 881 | box-shadow: 0 6px 8px 0 rgba(0, 0, 0, .05), 0 16px 32px -2px rgba(0, 0, 0, .05) 882 | } 883 | 884 | .editors .editor img { 885 | flex: 0; 886 | height: 42px; 887 | margin-bottom: 6px 888 | } 889 | 890 | .built-in-v { 891 | display: grid; 892 | grid-template-columns: 1fr 1fr; 893 | grid-auto-flow: row dense; 894 | margin-top: 16px 895 | } 896 | 897 | .built-in-v .first, 898 | .built-in-v .second { 899 | padding-bottom: 16px 900 | } 901 | 902 | .built-in-v .first { 903 | grid-column-start: 1; 904 | padding-right: 70px 905 | } 906 | 907 | .built-in-v .second { 908 | grid-column-start: 2 909 | } 910 | 911 | @media (max-width:750px) { 912 | .built-in-v { 913 | grid-template-columns: 1fr 914 | } 915 | .built-in-v .first, 916 | .built-in-v .second { 917 | grid-column-start: 1 918 | } 919 | } 920 | 921 | .landing .hero .button .options-container .options:focus, .landing .hero .button .options-container .options:hover { 922 | opacity: 1; 923 | pointer-events: all !important; 924 | transform: translateY(0) 925 | } 926 | .book { 927 | position:absolute; right:0px; top:50px; text-align:center; display:block; width:155px; font-size:12px; 928 | } 929 | @media (max-width:800px) { 930 | .book { 931 | display:none; 932 | 933 | } 934 | } 935 | 936 | .text-center { 937 | text-align: center; 938 | } 939 | 940 | 941 | .left:hover { 942 | cursor: pointer; 943 | } 944 | 945 | .right:hover { 946 | cursor: pointer; 947 | } 948 | 949 | .news { 950 | font-size: 80%; 951 | margin-top: 0 !important; 952 | flex-direction: column 953 | } 954 | 955 | .news .container { 956 | display: flex; 957 | overflow-x: auto; 958 | scroll-behavior: smooth; 959 | -webkit-overflow-scrolling: touch 960 | } 961 | 962 | .news .block { 963 | min-width: 89.5px 964 | } 965 | 966 | .news_header { 967 | text-align: center; 968 | padding-top: 1rem 969 | } 970 | 971 | .news_date { 972 | font-weight: 700 973 | } 974 | 975 | .text-center { 976 | text-align: center 977 | } 978 | 979 | @media (max-width:920px) { 980 | .news .container { 981 | flex-direction: column 982 | } 983 | 984 | .left { 985 | display: none 986 | } 987 | 988 | .right { 989 | display: none 990 | } 991 | } 992 | 993 | .left { 994 | position: absolute; 995 | left: 5px; 996 | top: 50%; 997 | transform: translateY(-50%); 998 | height: 180px; 999 | width: 35px; 1000 | } 1001 | 1002 | .right { 1003 | position: absolute; 1004 | right: 5px; 1005 | top: 50%; 1006 | transform: translateY(-50%); 1007 | height: 180px; 1008 | width: 35px; 1009 | } 1010 | 1011 | .actual_news { 1012 | padding: 0 40px; 1013 | position: relative; 1014 | } 1015 | -------------------------------------------------------------------------------- /arabic.tr: -------------------------------------------------------------------------------- 1 | examples 2 | أمثلة 3 | ----- 4 | documentation 5 | المرجع 6 | ----- 7 | modules 8 | وحدات 9 | ----- 10 | faq 11 | أسئلة متداولة 12 | ----- 13 | built_in_v 14 | مبني فى لغة الفيي (V) 15 | ----- 16 | the_v_lang 17 | لغة البرمجة فيي (V) 18 | ----- 19 | v_slogan 20 | سهلة، سريعة، آمنة، و لغة (تجميع) لتطوير برامج قوية و مستدامة 21 | ----- 22 | includes_binaries 23 | تشمل الثنائيات لـ 3 أنظمة 24 | ----- 25 | install_source 26 | أو تثبيت لغة فيي من المصدر 27 | ----- 28 | couple_seconds 29 | هذا سيستغرق بضع ثوان 30 | ----- 31 | wip_info 32 | فيي (V) هي لغة في مرحلة مبكرة من تطورها. 33 | الميزات التي لا تزال قيد العمل يتم تمييزها بـ $ wip 34 |
35 | كل شئ في هذه الصفحة تم الانتهاء منه وهو مفتوح المصدر 36 |

37 | بحلول وقت إصدار V 1.0 المخطط له في كانون الأول (ديسمبر) 2019 ، لن يتبقى أي ($wips) 38 | ----- 39 | forum 40 | المنتدى 41 | ----- 42 | blog 43 | مدونة 44 | ----- 45 | fast_compilation 46 | تجميع سريع 47 | ----- 48 | safety 49 | أمن 50 | ----- 51 | performance 52 | أداء 53 | ----- 54 | simple_language_for_maintainable_programs 55 | لغة بسيطة لبناء برامج قابلة للصيانة 56 | ----- 57 | zero_deps 58 | مجمع 400 كيلو بايت مع صفرتبعيات 59 | ----- 60 | c_translation 61 | ترجمة C / C ++ 62 | ----- 63 | introduction 64 | مقدمة 65 | ----- 66 | comments 67 | تعليقات 68 | ----- 69 | functions 70 | وظائف 71 | ----- 72 | variables 73 | متغيرات 74 | ----- 75 | basic_types 76 | أنواع أساسية 77 | ----- 78 | strings 79 | سلاسل نصية 80 | ----- 81 | arrays 82 | مصفوفات 83 | ----- 84 | maps 85 | خرائط 86 | ----- 87 | if 88 | if الشرطية 89 | ----- 90 | in_op 91 | المشغل (in) 92 | ----- 93 | for_loop 94 | الحلقات الدورانية 95 | ----- 96 | switch 97 | مفاتيح 98 | ----- 99 | structs 100 | الهياكل 101 | ----- 102 | access_mod 103 | معدلات الوصول 104 | ----- 105 | methods 106 | طرق 107 | ----- 108 | pure_fns 109 | وظائف اصلية 110 | ----- 111 | high_fns 112 | وظائف عالية المستوى 113 |  ----- 114 | constants 115 | الثوابت 116 | ----- 117 | modules 118 | وحدات 119 | ----- 120 | interfaces 121 | واجهات 122 | ----- 123 | enums 124 | التعدادات 125 | ----- 126 | optionals_and_errors 127 | أنواع الخيارات ومعالجة الأخطاء 128 | ----- 129 | generics 130 | وظائف عامة 131 | ----- 132 | concurrency 133 | التزامن 134 | ----- 135 | decoding_json 136 | فك تشفير (json) 137 | ----- 138 | testing 139 | تجريب 140 | ----- 141 | memory_management 142 | إدارة الذاكرة 143 | ----- 144 | fast_comp1 145 | فيي (v) تجمع بين 100 ألف و 1.2 مليون سطر من الشفرة في الثانية لكل وحدة المعالجة المركزية. 146 | ----- 147 | fast_comp2 148 | فيي (V) يجمع نفسه في 0.15 - 0.6 ثانية. 149 | ----- 150 | fast_comp3 151 | ----- 152 | fast_comp4 153 | ----- 154 | no_null 155 | ليس صفر. 156 | ----- 157 | -------------------------------------------------------------------------------- /bahasa.tr: -------------------------------------------------------------------------------- 1 | examples 2 | Contoh 3 | ----- 4 | documentation 5 | Dokumentasi 6 | ----- 7 | modules 8 | Modul 9 | ----- 10 | faq 11 | FAQ 12 | ----- 13 | built_in_v 14 | Dibangun dengan V 15 | ----- 16 | the_v_lang 17 | Bahasa Pemrograman V 18 | ----- 19 | v_slogan 20 | Sederhana, cepat, aman, bahasa yang dikompilasi untuk mengembangkan perangkat lunak yang mudah dipelihara 21 | ----- 22 | includes_binaries 23 | Sudah termasuk binari untuk 3 sistem 24 | ----- 25 | install_source 26 | Atau install V langsung dari sumber 27 | ----- 28 | couple_seconds 29 | Ini akan memakan waktu beberapa saat 30 | ----- 31 | wip_info 32 | V adalah bahasa yang dikembangkan yang masih dalam tahap awal. 33 | Fitur-fitur yang masih dikerjakan ditandai dengan $wip 34 |
35 | Seluruh yang ada di halaman ini dan di dokumentasi telah di implementasikan dan bersifat terbuka. 36 |

37 | Rilis V 1.0 akan direncanakan pada Desember 2019, dimana tidak akan ada lagi $wip. 38 | ----- 39 | forum 40 | Forum 41 | ----- 42 | blog 43 | Blog 44 | ----- 45 | fast_compilation 46 | Fast compilation 47 | ----- 48 | safety 49 | Keamanan 50 | ----- 51 | performance 52 | Performa 53 | ----- 54 | simple_language_for_maintainable_programs 55 | Bahasa yang mudah untuk membangun program yang mudah dipelihara 56 | ----- 57 | zero_deps 58 | 400 KB compiler tanpa dependencies 59 | ----- 60 | c_translation 61 | C/C++ translation 62 | ----- 63 | introduction 64 | Perkenalan 65 | ----- 66 | comments 67 | Komentar 68 | ----- 69 | functions 70 | Fungsi 71 | ----- 72 | variables 73 | Variabel 74 | ----- 75 | basic_types 76 | Tipe Dasar 77 | ----- 78 | strings 79 | Strings 80 | ----- 81 | arrays 82 | Arrays 83 | ----- 84 | maps 85 | Maps 86 | ----- 87 | if 88 | If 89 | ----- 90 | in_op 91 | In operator 92 | ----- 93 | for_loop 94 | For loop 95 | ----- 96 | switch 97 | Switch 98 | ----- 99 | structs 100 | Structs 101 | ----- 102 | access_mod 103 | Access modifiers 104 | ----- 105 | methods 106 | Methods 107 | ----- 108 | pure_fns 109 | Pure functions 110 | ----- 111 | high_fns 112 | High order functions 113 | ----- 114 | constants 115 | Constants 116 | ----- 117 | modules 118 | Modules 119 | ----- 120 | interfaces 121 | Interfaces 122 | ----- 123 | enums 124 | Enums 125 | ----- 126 | optionals_and_errors 127 | Option types & error handling 128 | ----- 129 | generics 130 | Generics 131 | ----- 132 | concurrency 133 | Concurrency 134 | ----- 135 | decoding_json 136 | Decoding JSON 137 | ----- 138 | testing 139 | Testing 140 | ----- 141 | memory_management 142 | Memory management 143 | ----- 144 | fast_comp1 145 | V dicompile sekitar =100k dan 1.2 juta baris kode per detik per CPU core. 146 | ----- 147 | fast_comp2 148 | V dicompile sendiri pada 0.15 - 0.6 detik. 149 | ----- 150 | fast_comp3 151 | ----- 152 | fast_comp4 153 | ----- 154 | no_null 155 | No null 156 | ----- 157 | -------------------------------------------------------------------------------- /bosnian.tr: -------------------------------------------------------------------------------- 1 | examples 2 | Primjeri 3 | ----- 4 | documentation 5 | Dokumentacija 6 | ----- 7 | modules 8 | Moduli 9 | ----- 10 | faq 11 | FAQ 12 | ----- 13 | built_in_v 14 | Kreirano sa V-om 15 | ----- 16 | the_v_lang 17 | V programski jezik 18 | ----- 19 | v_slogan 20 | Jednostavan, brz, siguran kompajliran jezik za kreiranje održivog softvera 21 | ----- 22 | includes_binaries 23 | koristi binarne verzije za 3 sistema 24 | ----- 25 | install_source 26 | Ili instaliraj V kompajliranjem izvornog koda 27 | ----- 28 | couple_seconds 29 | ovo će trajati par sekundi 30 | ----- 31 | wip_info 32 | V je aktivan jezik koji je u ranoj fazi razvoja 33 | Značajke koje su još u izradi označene su sa $wip 34 |
35 | Sve na ovoj stranici i dokumentacija su implementirani i otvorenog su koda. 36 |

37 | Do vremena izlazka V 1.0 koji je planiran za decembar 2019, neće više biti $wip za završiti. 38 | By the time of the V 1.0 release planned for December 2019, there will be no $wip's left. 39 | ----- 40 | forum 41 | Forum 42 | ----- 43 | blog 44 | Blog 45 | ----- 46 | fast_compilation 47 | Brza kompilacija 48 | ----- 49 | safety 50 | Sigurnost 51 | ----- 52 | performance 53 | Performanse 54 | ----- 55 | simple_language_for_maintainable_programs 56 | Jednostavan jezik za kreiranje održivih programa 57 | ----- 58 | zero_deps 59 | 400 KB-ni kompajler sa nula ovisnih komponenti 60 | ----- 61 | c_translation 62 | C/C++ prijevod 63 | ----- 64 | introduction 65 | Uvod 66 | ----- 67 | comments 68 | Komentari 69 | ----- 70 | functions 71 | Funkcije 72 | ----- 73 | variables 74 | Varijable 75 | ----- 76 | basic_types 77 | Jednostavni tipovi 78 | ----- 79 | strings 80 | Stringovi 81 | ----- 82 | arrays 83 | Nizovi 84 | ----- 85 | maps 86 | Mape 87 | ----- 88 | if 89 | If 90 | ----- 91 | in_op 92 | In operator 93 | ----- 94 | for_loop 95 | For petlja 96 | ----- 97 | switch 98 | Switch 99 | ----- 100 | structs 101 | Struktovi 102 | ----- 103 | access_mod 104 | Pristupni modifikatori 105 | ----- 106 | methods 107 | Metode 108 | ----- 109 | pure_fns 110 | Čiste funkcije 111 | ----- 112 | high_fns 113 | Funkcije višeg stepena 114 | ----- 115 | constants 116 | Konstante 117 | ----- 118 | modules 119 | Moduli 120 | ----- 121 | interfaces 122 | Interfejsi 123 | ----- 124 | enums 125 | Enumi 126 | ----- 127 | optionals_and_errors 128 | Vrste opcija i rukovanje greškama 129 | ----- 130 | generics 131 | Generički tipovi 132 | ----- 133 | concurrency 134 | Konkurencija 135 | ----- 136 | decoding_json 137 | Dekodiranje JSON-a 138 | ----- 139 | testing 140 | Testiranje 141 | ----- 142 | memory_management 143 | Rukovanje memorijom 144 | ----- 145 | fast_comp1 146 | V kompajlira između ≈100 hiljada i 1.2 miliona linija koda na sekundu po jezgri procesora. 147 | ----- 148 | fast_comp2 149 | V kompajlira sebe za 0.15 - 0.6 sekundi. 150 | ----- 151 | fast_comp3 152 | ----- 153 | fast_comp4 154 | ----- 155 | no_null 156 | Nije null 157 | ----- 158 | -------------------------------------------------------------------------------- /catalan.tr: -------------------------------------------------------------------------------- 1 | examples 2 | Exemples 3 | ----- 4 | documentation 5 | Documentació 6 | ----- 7 | modules 8 | Mòduls 9 | ----- 10 | faq 11 | FAQ 12 | ----- 13 | built_in_v 14 | Creat amb V 15 | ----- 16 | the_v_lang 17 | The V Programming Language 18 | ----- 19 | v_slogan 20 | Un llenguatge senzill, ràpid, segur i compilat per desenvolupar programari mantenible 21 | ----- 22 | includes_binaries 23 | inclou binaris per 3 sistemes 24 | ----- 25 | install_source 26 | O instal·la V des del codi font 27 | ----- 28 | couple_seconds 29 | això pot trigar un parell de segons 30 | ----- 31 | wip_info 32 | V és un llenguatge desenvolupat activament en una etapa inicial. 33 | Les característiques en que encara s’està treballant estan marcades amb $wip 34 |
35 | Tota la resta d’aquesta pàgina i els documents s’han implementat i de codi obert. 36 |

37 | En el moment de la versió V 1.0 prevista per al desembre de 2019, ja no quedaran més $wip. 38 | ----- 39 | forum 40 | Fòrum 41 | ----- 42 | blog 43 | Bloc 44 | ----- 45 | fast_compilation 46 | Compilació ràpida 47 | ----- 48 | safety 49 | Seguretat 50 | ----- 51 | performance 52 | Rendiment 53 | ----- 54 | simple_language_for_maintainable_programs 55 | Llenguatge senzill per crear programes mantenibles 56 | ----- 57 | zero_deps 58 | Compilador de 400 KB sense dependències 59 | ----- 60 | c_translation 61 | Traducció C/C++ 62 | ----- 63 | introduction 64 | Introducció 65 | ----- 66 | comments 67 | Comentaris 68 | ----- 69 | functions 70 | Funcions 71 | ----- 72 | variables 73 | Variables 74 | ----- 75 | basic_types 76 | Tipus bàsics 77 | ----- 78 | strings 79 | Strings 80 | ----- 81 | arrays 82 | Arrays 83 | ----- 84 | maps 85 | Maps 86 | ----- 87 | if 88 | If 89 | ----- 90 | in_op 91 | Operador In 92 | ----- 93 | for_loop 94 | Bucle for 95 | ----- 96 | switch 97 | Switch 98 | ----- 99 | structs 100 | Structs 101 | ----- 102 | access_mod 103 | Modificadors d’accés 104 | ----- 105 | methods 106 | Mètodes 107 | ----- 108 | pure_fns 109 | Funcions pures 110 | ----- 111 | high_fns 112 | Funcions d’ordre superior 113 | ----- 114 | constants 115 | Constants 116 | ----- 117 | modules 118 | Mòduls 119 | ----- 120 | interfaces 121 | Interfícies 122 | ----- 123 | enums 124 | Enums 125 | ----- 126 | optionals_and_errors 127 | Tipus opcionals i control d’errors 128 | ----- 129 | generics 130 | Genèrics 131 | ----- 132 | concurrency 133 | Concurrència 134 | ----- 135 | decoding_json 136 | Descodificació de JSON 137 | ----- 138 | testing 139 | Testing 140 | ----- 141 | memory_management 142 | Control de memòria 143 | ----- 144 | fast_comp1 145 | V compila entre ≈100k y 1.2 milions de línies de codi per segon i per nucli de CPU 146 | ----- 147 | fast_comp2 148 | V es compila a si mateix en 0.15 - 0.6 segons 149 | ----- 150 | fast_comp3 151 | ----- 152 | fast_comp4 153 | ----- 154 | no_null 155 | Sense null 156 | ----- 157 | -------------------------------------------------------------------------------- /chinese.tr: -------------------------------------------------------------------------------- 1 | examples 2 | 例子 3 | ----- 4 | documentation 5 | 文档 6 | ----- 7 | modules 8 | 模块 9 | ----- 10 | faq 11 | 常见问题 12 | ----- 13 | built_in_v 14 | 用V构建的作品 15 | ----- 16 | the_v_lang 17 | V编程语言 18 | ----- 19 | v_slogan 20 | 简洁、快速、安全的编译型语言,用于开发易维护的软件 21 | ----- 22 | includes_binaries 23 | 包括3种操作系统的二进制文件 24 | ----- 25 | install_source 26 | 或者从源码安装 V 27 | ----- 28 | couple_seconds 29 | 这将花费几秒钟 30 | ----- 31 | wip_info 32 | V 正处于被积极开发的早期阶段,仍在开发过程中的特性都会被标记为 $wip。
33 | 本页面及文档中的其他未被标记的描述,都已被实现并且开源。 34 |

35 | V 1.0 计划于2019年12月发布,届时将不会遗留任何 $wip 标记。 36 | ----- 37 | forum 38 | 论坛 39 | ----- 40 | blog 41 | 博客 42 | ----- 43 | fast_compilation 44 | 快速编译 45 | ----- 46 | safety 47 | 安全 48 | ----- 49 | performance 50 | 性能 51 | ----- 52 | simple_language_for_maintainable_programs 53 | 用于构建可维护程序的简洁语言 54 | ----- 55 | zero_deps 56 | 编译器仅 400 KB 且零依赖 57 | ----- 58 | c_translation 59 | C/C++ 转写 60 | ----- 61 | introduction 62 | 介绍 63 | ----- 64 | comments 65 | 注释 66 | ----- 67 | functions 68 | 函数 69 | ----- 70 | variables 71 | 变量 72 | ----- 73 | basic_types 74 | 基本类型 75 | ----- 76 | strings 77 | 字符串 78 | ----- 79 | arrays 80 | 数组 81 | ----- 82 | maps 83 | 集合 84 | ----- 85 | if 86 | If 语句 87 | ----- 88 | in_op 89 | In 运算符 90 | ----- 91 | for_loop 92 | For 循环 93 | ----- 94 | switch 95 | Switch 语句 96 | ----- 97 | structs 98 | 结构体 99 | ----- 100 | access_mod 101 | 访问修饰符 102 | ----- 103 | methods 104 | 方法 105 | ----- 106 | pure_fns 107 | 纯函数 108 | ----- 109 | high_fns 110 | 高阶函数 111 | ----- 112 | constants 113 | 常量 114 | ----- 115 | modules 116 | 模块 117 | ----- 118 | interfaces 119 | 接口 120 | ----- 121 | enums 122 | 枚举 123 | ----- 124 | optionals_and_errors 125 | Option 类型 & 错误处理 126 | ----- 127 | generics 128 | 泛型 129 | ----- 130 | concurrency 131 | 并发 132 | ----- 133 | decoding_json 134 | JSON 解析 135 | ----- 136 | testing 137 | 测试 138 | ----- 139 | memory_management 140 | 内存管理 141 | ----- 142 | fast_comp1 143 | V每个CPU内核每秒可编译≈100万至120万行代码 144 | ----- 145 | fast_comp2 146 | V自行编译在0.15-0.6秒以内 147 | ----- 148 | fast_comp3 149 | ----- 150 | fast_comp4 151 | ----- 152 | no_null 153 | 非空 154 | ----- 155 | -------------------------------------------------------------------------------- /compare.html: -------------------------------------------------------------------------------- 1 | @t header 2 | 32 | 33 |

34 | 35 |
36 |
37 |

Comparison of V and other languages

38 | 39 |

40 | V was created because none of the existing languages had all of the following 41 | features: 42 |

43 | 44 |
Fast compilation D, Go, Delphi 45 |
Simplicity & maintainabilityGo 46 |
Great performance on par with C and
zero cost C interop
C, C++, D, Delphi, Rust 47 |
Safety (immutability, no null, option types, free from data races) Rust 48 |
Easy concurrency Go 49 |
Easy cross compilationGo 50 |
Compile time code generationD 51 |
Small compiler with zero dependencies- 52 |
No global state- 53 |
Hot code reloadingC# (.NET 6+), Dart 54 |
55 | 56 |

57 | Initially I was going to compare V to all major languages, but it got repetitive pretty quickly. 58 |

59 |

60 | The table above and the list of the features on the home page should give you a pretty good picture. 61 |

62 |

63 | For example, it's pretty obvious that compared to C++, V is much simpler. It offers significantly faster compilation speed, 64 | safety, lack of undefined behavior (wip, e.g. overflowing can still result in UB), easy concurrency, compile time code generation, etc. 65 |

66 |

67 | Compared to Python, it's much faster, simpler, safer, more maintainable, etc. 68 |

69 |

70 | You can use this formula for any language. 71 |

72 |

73 | Syntax comparison: 74 |

75 |

76 | V for Go developers 77 |

78 |

79 | V for C++ developers 80 |

81 |

82 | Since V is very similar to Go, and its domain is similar to Rust's, I left a comparison with these two languages. 83 |

84 | 85 |

Go

86 | 87 |

88 | V is very similar to Go, and these are the things it improves upon: 89 |

90 |

91 | — No err != nil checks (replaced by result types) 92 |

93 |

94 | — No variable shadowing 95 |

96 |

97 | — Immutability by default 98 |

99 |

100 | — Enums 101 |

102 |

103 | — Sum types (type Expr = IfExpr | StringLiteral | IntLiteral | ...) 104 |

105 |

106 | — String interpolation: println('${foo}: ${bar.baz}') 107 |

108 |

109 | — If and match expressions (including sum type matches) 110 |

111 |

112 | — No global state (globals can be enabled for low level applications like kernels via a command line flag)
113 |

114 |

115 | — A simple way to check whether an array contains an element: if elem in arr {. 116 |

117 | — Only one declaration style: a := 0, therefore no uninitialized variables. 118 |

119 |

120 | — Warnings for unused imports and vars for quicker development without annoying 121 | interruptions. But only in development/debugging mode. 122 |
123 | Making a production build still requires fixing all of them, thus enforcing 124 | clean code. 125 |

126 | — filter/map/reduce methods for arrays and maps. 127 |

128 |

129 | — Much smaller runtime 130 |

131 |

132 | — Much smaller binaries (a simple web server written in V is ~600 KB vs ~7 MB in Go) 133 |

134 |

135 | — Zero cost C interop 136 |

137 |

138 | — GC is optional 139 |

140 |

141 | — Much faster serialization using codegen and no runtime reflection 142 |

143 |

144 | — Simpler local modules: `import internal.css_lexer ` instead of `import "github.com/evanw/esbuild/internal/css_lexer"` 145 |

146 |

147 | — Precompiled text and HTML templates unlike Go's html/templates that have to 148 | be parsed on every request (or pre-cached and executed on every request) and 149 | have to be deployed with the app's binary. 150 |

151 |

152 | — Fearless concurrency (no data race guarantee at compilation) wip 153 |

154 |

155 | — No null (null is only allowed in unsafe code) 156 |

157 |

158 | — Stricter vfmt to ensure one coding style 159 |

160 |

161 | — Centralized package manager: vpm.vlang.io (v install ...) 162 |

163 |

164 | — Much simpler and less verbose testing, assert. 165 |

166 |

167 | — Primitive types can have methods resulting in less verbose code: strings.Replace(strings.Replace(s, "a", "A", -1), "b", "B", -1) => 168 |
s.replace('a', 'A').replace('b', 'B') 169 |

170 |

171 | - Arrays and maps (and arrays of arrays, arrays of maps etc) are automatically allocated. No more nil reference panics if you forgot to allocate each map in a loop. 172 |

173 |

174 |
175 |

Rust

176 | 177 | Rust has a very different philosophy. 178 | 179 |

180 | It is a complex language with a growing set of features and a steep learning curve. No doubt, once you learn and understand the language, 181 | it becomes a very powerful tool for developing safe, fast, and stable software. But the complexity is 182 | still there. 183 |

184 |

185 | V's goal is to allow building maintainable and predictable software. That's why the language 186 | is so simple and maybe even boring for some. The good thing is, you can jump into any part of the project 187 | and understand what's going on, feel like it was you who wrote it, because the language is simple and 188 | there's only one way of doing things. 189 |

190 |

191 | Rust's compilation speed is slow, on par with C++. V compiles 1.2 million lines of code per cpu per second. 192 |

193 |
194 |

V vs Rust vs Go: Example

195 |

196 | Since V's domain is close to both Go and Rust, I decided to use a simple example to compare the three. 197 |

198 |

199 | It's a simple program that fetches top Hacker News stories concurrently. (Note, that all examples only use stdlib, no external libs.) 200 |

201 |

202 | Rust 203 |

204 |
use serde::Deserialize;
205 | use std::sync::{Arc, Mutex};
206 | 
207 | const STORIES_URL: &str = "https://hacker-news.firebaseio.com/v0/topstories.json";
208 | const ITEM_URL_BASE: &str = "https://hacker-news.firebaseio.com/v0/item";
209 | 
210 | #[derive(Deserialize)]
211 | struct Story {
212 |     title: String,
213 | }
214 | 
215 | fn main() {
216 |     let story_ids: Arc<Vec<u64>> = Arc::new(reqwest::get(STORIES_URL).unwrap().json().unwrap());
217 |     let cursor = Arc::new(Mutex::new(0));
218 |     let mut handles = Vec::new();
219 |     for _ in 0..8 {
220 |         let cursor = cursor.clone();
221 |         let story_ids = story_ids.clone();
222 |         handles.push(std::thread::spawn(move || loop {
223 |             let index = {
224 |                 let mut cursor_guard = cursor.lock().unwrap();
225 |                 let index = *cursor_guard;
226 |                 if index >= story_ids.len() {
227 |                     return;
228 |                 }
229 |                 *cursor_guard += 1;
230 |                 index
231 |             };
232 |             let story_url = format!("{}/{}.json", ITEM_URL_BASE, story_ids[index]);
233 |             let story: Story = reqwest::get(&story_url).unwrap().json().unwrap();
234 |             println!("{}", story.title);
235 |         }));
236 |     }
237 |     for handle in handles {
238 |         handle.join().unwrap();
239 |     }
240 | }
241 | 
242 | 243 | Go 244 | 245 |
246 | package main
247 | 
248 | import (
249 | 	"encoding/json"
250 | 	"fmt"
251 | 	"io/ioutil"
252 | 	"net/http"
253 | 	"sync"
254 | )
255 | 
256 | const STORIES_URL = "https://hacker-news.firebaseio.com/v0/topstories.json"
257 | const ITEM_URL_BASE = "https://hacker-news.firebaseio.com/v0/item"
258 | 
259 | type Story struct {
260 | 	Title string
261 | }
262 | 
263 | func main() {
264 | 	rsp, err := http.Get(STORIES_URL)
265 | 	if err != nil {
266 | 		panic(err)
267 | 	}
268 | 	defer rsp.Body.Close()
269 | 	data, err := ioutil.ReadAll(rsp.Body)
270 | 	if err != nil {
271 | 		panic(err)
272 | 	}
273 | 	var ids []int
274 | 	if err := json.Unmarshal(data, &ids); err != nil {
275 | 		panic(err)
276 | 	}
277 | 	var cursor int
278 | 	var mutex sync.Mutex
279 | 	next := func() int {
280 | 		mutex.Lock()
281 | 		defer mutex.Unlock()
282 | 		temp := cursor
283 | 		cursor++
284 | 		return temp
285 | 	}
286 | 	wg := sync.WaitGroup{}
287 | 	for i := 0; i < 8; i++ {
288 | 		wg.Add(1)
289 | 		go func() {
290 | 			for cursor := next(); cursor < len(ids); cursor = next() {
291 | 				url := fmt.Sprintf(
292 | 					"%s/%d.json",
293 | 					ITEM_URL_BASE,
294 | 					ids[cursor],
295 | 				)
296 | 				rsp, err := http.Get(url)
297 | 				if err != nil {
298 | 					panic(err)
299 | 				}
300 | 				defer rsp.Body.Close()
301 | 
302 | 				data, err := ioutil.ReadAll(rsp.Body)
303 | 				if err != nil {
304 | 					panic(err)
305 | 				}
306 | 				var story Story
307 | 				if err := json.Unmarshal(data, &story); err != nil {
308 | 					panic(err)
309 | 				}
310 | 				fmt.Println(story.Title)
311 | 			}
312 | 			wg.Done()
313 | 		}()
314 | 	}
315 | 	wg.Wait()
316 | }
317 | 
318 | 319 | V 320 | 321 |
322 | import net.http
323 | import json
324 | 
325 | const (
326 | 	stories_url   = 'https://hacker-news.firebaseio.com/v0/topstories.json'
327 | 	item_base_url = 'https://hacker-news.firebaseio.com/v0/item'
328 | )
329 | 
330 | struct Story {
331 | 	title string
332 | }
333 | 
334 | struct Cursor {
335 | mut:
336 | 	pos int
337 | }
338 | 
339 | fn main() {
340 | 	resp := http.get(stories_url)!
341 |     ids := json.decode([]int, resp.body)!
342 |     shared cursor := Cursor{}
343 |     mut threads := []thread{}
344 | 
345 |     for _ in 0 .. 8 {
346 |         threads << go fn (ids []int, shared cursor Cursor) {
347 |             for {
348 |                 id := lock cursor {
349 |                     if cursor.pos >= ids.len {
350 |                         break
351 |                     }
352 |                     cursor.pos++
353 |                     ids[cursor.pos - 1]
354 |                 }
355 |                 resp := http.get('$item_base_url/${id}.json') or { panic(err) }
356 |                 story := json.decode(Story, resp.body) or { panic(err) }
357 |                 println(story.title)
358 |             }
359 |         }(ids, shared cursor)
360 |     }
361 |     threads.wait()
362 | }
363 | 
364 | 365 | Nim 366 | 367 |

368 | V and Nim are very different. One of V's main philosophies is "there must be only one way of doing things". 369 | This results in predictable, simple, and maintainable code. 370 |

371 | 372 |

373 | Nim gives a lot of options and freedom to developers. For example, in V you would write 374 | foo.bar_baz(), 375 | but in Nim all of these are valid: foo.barBaz(), foo.bar_baz(), 376 | bar_baz(foo), barBaz(foo), 377 | barbaz(foo) etc. 378 |

379 |

380 | In V there's only one way to return a value from a function: return value. In Nim you can do 381 | return value, result = value, value (final expression), or modify 382 | a ref argument. 383 |

384 | 385 |

Features like macros and OOP offer multiple ways to solve problems and increase complexity.

386 | 387 |

Nim's strings are mutable, in my opinion this is a huge drawback. I'll post a detailed article 388 | about the power of immutable strings.

389 | 390 |

Unlike V, Nim generates unreadable C code with lots of extra bloat. For example:

391 |
392 | var users = [
393 |     User(name: "Carl", last_name: "Black", age: 22),
394 |     User(name: "Sam", last_name: "Johnson", age: 23)
395 | ]
396 | 
397 | 398 | If we build this with nim c -d:release test.nim, we get 399 | 400 |
401 | STRING_LITERAL(TM_R8RUzYq41iOx0I9bZH5Nyrw_5, "Carl", 4);
402 | STRING_LITERAL(TM_R8RUzYq41iOx0I9bZH5Nyrw_6, "Black", 5);
403 | STRING_LITERAL(TM_R8RUzYq41iOx0I9bZH5Nyrw_7, "Sam", 3);
404 | STRING_LITERAL(TM_R8RUzYq41iOx0I9bZH5Nyrw_8, "Johnson", 7);
405 | NIM_CONST tyArray_m9aGbgPB3gZgFcKcDkjg9a8g TM_R8RUzYq41iOx0I9bZH5Nyrw_4 = { { ((NimStringDesc*) &TM_R8RUzYq41iOx0I9bZH5Nyrw_5), ((NimStringDesc*) &TM_R8RUzY
406 | q41iOx0I9bZH5Nyrw_6), ((NI) 22)},
407 | 
408 | {((NimStringDesc*) &TM_R8RUzYq41iOx0I9bZH5Nyrw_7), ((NimStringDesc*) &TM_R8RUzYq41iOx0I9bZH5Nyrw_8), ((NI) 23)}}
409 | ;
410 | 
411 | N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void) {
412 | {
413 |         TFrame FR_; FR_.len = 0;
414 | }
415 | nimRegisterGlobalMarker(TM_R8RUzYq41iOx0I9bZH5Nyrw_3);
416 |         genericAssign((void*)users_oOczRkVOc3qtKT8rsAJzaw, (void*)TM_R8RUzYq41iOx0I9bZH5Nyrw_4, (&NTI_m9aGbgPB3gZgFcKcDkjg9a8g_));
417 | }
418 | 
419 | N_LIB_PRIVATE N_NIMCALL(void, aDatInit000)(void) {
420 | static TNimNode* TM_R8RUzYq41iOx0I9bZH5Nyrw_2[3];
421 | static TNimNode TM_R8RUzYq41iOx0I9bZH5Nyrw_0[4];
422 | NTI_Qp0mfNOzxWdmSSWLHA9cnZQ_.size = sizeof(tyObject_User_Qp0mfNOzxWdmSSWLHA9cnZQ);
423 | NTI_Qp0mfNOzxWdmSSWLHA9cnZQ_.kind = 18;
424 | NTI_Qp0mfNOzxWdmSSWLHA9cnZQ_.base = 0;
425 | NTI_Qp0mfNOzxWdmSSWLHA9cnZQ_.flags = 2;
426 | TM_R8RUzYq41iOx0I9bZH5Nyrw_2[0] = &TM_R8RUzYq41iOx0I9bZH5Nyrw_0[1];
427 | TM_R8RUzYq41iOx0I9bZH5Nyrw_0[1].kind = 1;
428 | TM_R8RUzYq41iOx0I9bZH5Nyrw_0[1].offset = offsetof(tyObject_User_Qp0mfNOzxWdmSSWLHA9cnZQ, name);
429 | TM_R8RUzYq41iOx0I9bZH5Nyrw_0[1].typ = (&NTI_77mFvmsOLKik79ci2hXkHEg_);
430 | TM_R8RUzYq41iOx0I9bZH5Nyrw_0[1].name = "name";
431 | TM_R8RUzYq41iOx0I9bZH5Nyrw_2[1] = &TM_R8RUzYq41iOx0I9bZH5Nyrw_0[2];
432 | TM_R8RUzYq41iOx0I9bZH5Nyrw_0[2].kind = 1;
433 | TM_R8RUzYq41iOx0I9bZH5Nyrw_0[2].offset = offsetof(tyObject_User_Qp0mfNOzxWdmSSWLHA9cnZQ, last_name);
434 | TM_R8RUzYq41iOx0I9bZH5Nyrw_0[2].typ = (&NTI_77mFvmsOLKik79ci2hXkHEg_);
435 | TM_R8RUzYq41iOx0I9bZH5Nyrw_0[2].name = "last_name";
436 | TM_R8RUzYq41iOx0I9bZH5Nyrw_2[2] = &TM_R8RUzYq41iOx0I9bZH5Nyrw_0[3];
437 | TM_R8RUzYq41iOx0I9bZH5Nyrw_0[3].kind = 1;
438 | TM_R8RUzYq41iOx0I9bZH5Nyrw_0[3].offset = offsetof(tyObject_User_Qp0mfNOzxWdmSSWLHA9cnZQ, age);
439 | TM_R8RUzYq41iOx0I9bZH5Nyrw_0[3].typ = (&NTI_rR5Bzr1D5krxoo1NcNyeMA_);
440 | TM_R8RUzYq41iOx0I9bZH5Nyrw_0[3].name = "age";
441 | TM_R8RUzYq41iOx0I9bZH5Nyrw_0[0].len = 3; TM_R8RUzYq41iOx0I9bZH5Nyrw_0[0].kind = 2; TM_R8RUzYq41iOx0I9bZH5Nyrw_0[0].sons = &TM_R8RUzYq41iOx0I9bZH5Nyrw_2[0]
442 | ;
443 | NTI_Qp0mfNOzxWdmSSWLHA9cnZQ_.node = &TM_R8RUzYq41iOx0I9bZH5Nyrw_0[0];
444 | NTI_m9aGbgPB3gZgFcKcDkjg9a8g_.size = sizeof(tyArray_m9aGbgPB3gZgFcKcDkjg9a8g);
445 | NTI_m9aGbgPB3gZgFcKcDkjg9a8g_.kind = 16;
446 | NTI_m9aGbgPB3gZgFcKcDkjg9a8g_.base = (&NTI_Qp0mfNOzxWdmSSWLHA9cnZQ_);
447 | NTI_m9aGbgPB3gZgFcKcDkjg9a8g_.flags = 2;
448 | }
449 | 
450 | 451 |

452 | V can emit native code directly (V's native backend is not as complete as the C backend yet though), 453 | Nim can only emit C and JavaScript. It's also possible to embed C code 454 | in Nim, which reduces safety and portability. 455 |

456 |

Nim allows importing functions into global namespace. This becomes a huge problem when working on large 457 | code bases. Explicit imports that V, Go, Oberon have are much more practical: pkg.function() vs 458 | function(). 459 |

460 |

V's syntax is cleaner with fewer rules. Lack of significant whitespace improves 461 | readability and maintainability of large code bases and makes generating code much easier. 462 | From my experience of working with a huge Python code base, moving large blocks of code in whitespace sensitive 463 | languages is scary. 464 |

465 |

The list can go on and on. Nim is a language with a lot of features, still developing and changing. 466 | V is not going to change much, if at all. 467 |

468 |

Again, I'm not saying it's a worse language. It's a very different language that offers a lot of 469 | options and features. Many developers prefer this approach. And that's ok. 470 |

471 | 472 |
473 |
474 | @t footer 475 | -------------------------------------------------------------------------------- /english.tr: -------------------------------------------------------------------------------- 1 | examples 2 | Examples 3 | ----- 4 | documentation 5 | Documentation 6 | ----- 7 | modules 8 | Modules 9 | ----- 10 | faq 11 | FAQ 12 | ----- 13 | built_in_v 14 | Built in V 15 | ----- 16 | the_v_lang 17 | The V Programming Language 18 | ----- 19 | v_slogan 20 | Simple, fast, safe, compiled language for developing maintainable software 21 | ----- 22 | includes_binaries 23 | includes binaries for 3 systems 24 | ----- 25 | install_source 26 | Or install V from source 27 | ----- 28 | couple_seconds 29 | this will take a couple of seconds 30 | ----- 31 | wip_info 32 | V is an actively developed language at an early stage. 33 | Features that are still being worked on are marked with $wip 34 |
35 | Everything else on this page and the docs has been implemented and open-sourced. 36 |

37 | By the time of the V 1.0 release planned for December 2019, there will be no $wip's left. 38 | ----- 39 | forum 40 | Forum 41 | ----- 42 | blog 43 | Blog 44 | ----- 45 | fast_compilation 46 | Fast compilation 47 | ----- 48 | safety 49 | Safety 50 | ----- 51 | performance 52 | Performance 53 | ----- 54 | simple_language_for_maintainable_programs 55 | Simple language for building maintainable programs 56 | ----- 57 | zero_deps 58 | 400 KB compiler with zero dependencies 59 | ----- 60 | c_translation 61 | C/C++ translation 62 | ----- 63 | introduction 64 | Introduction 65 | ----- 66 | comments 67 | Comments 68 | ----- 69 | functions 70 | Functions 71 | ----- 72 | variables 73 | Variables 74 | ----- 75 | basic_types 76 | Basic types 77 | ----- 78 | strings 79 | Strings 80 | ----- 81 | arrays 82 | Arrays 83 | ----- 84 | maps 85 | Maps 86 | ----- 87 | if 88 | If 89 | ----- 90 | in_op 91 | In operator 92 | ----- 93 | for_loop 94 | For loop 95 | ----- 96 | switch 97 | Switch 98 | ----- 99 | structs 100 | Structs 101 | ----- 102 | access_mod 103 | Access modifiers 104 | ----- 105 | methods 106 | Methods 107 | ----- 108 | pure_fns 109 | Pure functions 110 | ----- 111 | high_fns 112 | High order functions 113 | ----- 114 | constants 115 | Constants 116 | ----- 117 | modules 118 | Modules 119 | ----- 120 | interfaces 121 | Interfaces 122 | ----- 123 | enums 124 | Enums 125 | ----- 126 | optionals_and_errors 127 | Option types & error handling 128 | ----- 129 | generics 130 | Generics 131 | ----- 132 | concurrency 133 | Concurrency 134 | ----- 135 | decoding_json 136 | Decoding JSON 137 | ----- 138 | testing 139 | Testing 140 | ----- 141 | memory_management 142 | Memory management 143 | ----- 144 | fast_comp1 145 | V compiles between ≈100k and 1.2 million lines of code per second per CPU core. 146 | ----- 147 | fast_comp2 148 | V compiles itself in 0.15 - 0.6 seconds. 149 | ----- 150 | fast_comp3 151 | ----- 152 | fast_comp4 153 | ----- 154 | no_null 155 | No null 156 | ----- 157 | -------------------------------------------------------------------------------- /french.tr: -------------------------------------------------------------------------------- 1 | examples 2 | Examples 3 | ----- 4 | documentation 5 | Documentation 6 | ----- 7 | modules 8 | Modules 9 | ----- 10 | faq 11 | FAQ 12 | ----- 13 | built_in_v 14 | Intégré dans v 15 | ----- 16 | the_v_lang 17 | Le language de programmation v 18 | ----- 19 | v_slogan 20 | Langage compilé simple, rapide, sûr pour le développement de logiciels maintenables 21 | ----- 22 | includes_binaries 23 | Inclut des logiciels compilés pour 3 systèmes d'exploitation 24 | ----- 25 | install_source 26 | Ou installez V à partir de la source 27 | ----- 28 | couple_seconds 29 | Cela prendra quelques secondes 30 | ----- 31 | wip_info 32 | V est une langue activement développée à un stade précoce. 33 | Les fonctionnalités en cours de travail sont marquées par $wip 34 |
35 | Tout le reste de cette page et de la documentation a été implémenté et est libre et gratuit. 36 |

37 | Au moment de la sortie de V 1.0 prévue pour décembre 2019, il ne restera plus de $ wip. 38 | ----- 39 | forum 40 | Forum 41 | ----- 42 | blog 43 | Blog 44 | ----- 45 | fast_compilation 46 | Compilation rapide 47 | ----- 48 | safety 49 | Sécurité 50 | ----- 51 | performance 52 | Performance 53 | ----- 54 | simple_language_for_maintainable_programs 55 | Langage simple pour construire des logiciels maintenables 56 | ----- 57 | zero_deps 58 | Un compilateur pesant 400 KB sans dépendances externes 59 | ----- 60 | c_translation 61 | Traduction en C/C++ 62 | ----- 63 | introduction 64 | Introduction 65 | ----- 66 | comments 67 | Commentaires 68 | ----- 69 | functions 70 | Fonctions 71 | ----- 72 | variables 73 | Variables 74 | ----- 75 | basic_types 76 | Types de base 77 | ----- 78 | strings 79 | Chaînes de caractères 80 | ----- 81 | arrays 82 | Listes 83 | ----- 84 | maps 85 | Maps 86 | ----- 87 | if 88 | If 89 | ----- 90 | in_op 91 | Operateur-In 92 | ----- 93 | for_loop 94 | Boucle for 95 | ----- 96 | switch 97 | Switch 98 | ----- 99 | structs 100 | stuctures 101 | ----- 102 | access_mod 103 | Modificateurs d'accès 104 | ----- 105 | methods 106 | Méthodes 107 | ----- 108 | pure_fns 109 | Fonctions pures 110 | ----- 111 | high_fns 112 | Fonctions d'ordre élevé 113 | ----- 114 | constants 115 | constantes 116 | ----- 117 | modules 118 | Modules 119 | ----- 120 | interfaces 121 | Interfaces 122 | ----- 123 | enums 124 | Enumerations 125 | ----- 126 | optionals_and_errors 127 | Types d'options et gestion des erreurs 128 | ----- 129 | generics 130 | Types Génériques 131 | ----- 132 | concurrency 133 | parallélisme 134 | ----- 135 | decoding_json 136 | Décodage de json 137 | ----- 138 | testing 139 | Tests 140 | ----- 141 | memory_management 142 | Gestion de la memoire 143 | ----- 144 | fast_comp1 145 | V compile entre ≈100k et 1,2 million de lignes de code par seconde par cœur de processeur. 146 | ----- 147 | fast_comp2 148 | V se compile en 0,15 à 0,6 seconde. 149 | ----- 150 | no_null 151 | Pas de variable nulle 152 | ----- 153 | -------------------------------------------------------------------------------- /german.tr: -------------------------------------------------------------------------------- 1 | examples 2 | Beispiele 3 | ----- 4 | documentation 5 | Dokumentation 6 | ----- 7 | modules 8 | Module 9 | ----- 10 | faq 11 | FAQ 12 | ----- 13 | built_in_v 14 | Mit V erstellt 15 | ----- 16 | the_v_lang 17 | Die Programmiersprache V 18 | ----- 19 | v_slogan 20 | Eine einfache, schnelle und sichere kompilierte Sprache zur Entwicklung von wartungsfreundlicher Software 21 | ----- 22 | includes_binaries 23 | beeinhaltet Binärdateien für drei Systeme 24 | ----- 25 | install_source 26 | Oder installiere V aus dem Quellkode 27 | ----- 28 | couple_seconds 29 | dies dauert einige Sekunden 30 | ----- 31 | wip_info 32 | V ist eine aktiv entwickelte Sprache in einem frühen Stadium. 33 | Features, an denen noch gearbeitet wird sind mit $wip markiert. 34 |
35 | Alles andere auf dieser Seite und die Dokumentation wurde implementiert und ist Open Source. 36 |

37 | Zum Zeitpunkt der Veröffentlichung, die für den Dezember 2019 geplant ist, wird es keine $wip's mehr geben. 38 | ----- 39 | forum 40 | Forum 41 | ----- 42 | blog 43 | Blog 44 | ----- 45 | fast_compilation 46 | Schnelle Kompilierung 47 | ----- 48 | safety 49 | Sicherheit 50 | ----- 51 | performance 52 | Leistung 53 | ----- 54 | simple_language_for_maintainable_programs 55 | Eine einfache Sprache zum Erstellen von wartungsfreundlichen Programmen 56 | ----- 57 | zero_deps 58 | 400 KB Compiler ohne Abhängigkeiten von Drittanbietern 59 | ----- 60 | c_translation 61 | C/C++ Übersetzung 62 | ----- 63 | introduction 64 | Einführung 65 | ----- 66 | comments 67 | Kommentare 68 | ----- 69 | functions 70 | Funktionen 71 | ----- 72 | variables 73 | Variablen 74 | ----- 75 | basic_types 76 | Grundtypen 77 | ----- 78 | strings 79 | Strings 80 | ----- 81 | arrays 82 | Arrays 83 | ----- 84 | maps 85 | Maps 86 | ----- 87 | if 88 | If 89 | ----- 90 | in_op 91 | In-Operator 92 | ----- 93 | for_loop 94 | For-Schleife 95 | ----- 96 | switch 97 | Switch 98 | ----- 99 | structs 100 | Structs 101 | ----- 102 | access_mod 103 | Zugriffsmodifikatoren 104 | ----- 105 | methods 106 | Methoden 107 | ----- 108 | pure_fns 109 | Pure Funktionen 110 | ----- 111 | high_fns 112 | Funktionen höherer Ordnung 113 | ----- 114 | constants 115 | Konstanten 116 | ----- 117 | modules 118 | Module 119 | ----- 120 | interfaces 121 | Interfaces 122 | ----- 123 | enums 124 | Enums 125 | ----- 126 | optionals_and_errors 127 | Optionstypen und Fehlerbehandlung 128 | ----- 129 | generics 130 | Generics 131 | ----- 132 | concurrency 133 | Parallelität 134 | ----- 135 | decoding_json 136 | JSON dekodieren 137 | ----- 138 | testing 139 | Testen 140 | ----- 141 | memory_management 142 | Speicherverwaltung 143 | ----- 144 | fast_comp1 145 | V kompiliert zwischen ~100 Tsd. und 1,2 Millionen Kodezeilen pro Sekunde und CPU Kern. 146 | ----- 147 | fast_comp2 148 | V kompiliert sich selbst in 0,15 - 0,6 Sekunden. 149 | ----- 150 | no_null 151 | Keine Nullzeiger 152 | ----- 153 | -------------------------------------------------------------------------------- /img/arrow-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/img/arrow-left.png -------------------------------------------------------------------------------- /img/arrow-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/img/arrow-right.png -------------------------------------------------------------------------------- /img/book.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/img/book.jpg -------------------------------------------------------------------------------- /img/doom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/img/doom.png -------------------------------------------------------------------------------- /img/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/img/down.png -------------------------------------------------------------------------------- /img/emacs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/img/emacs.png -------------------------------------------------------------------------------- /img/gg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/img/gg.png -------------------------------------------------------------------------------- /img/patreon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/img/patreon.png -------------------------------------------------------------------------------- /img/sponsor_chipnetics.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 20 | 22 | 23 | 25 | image/svg+xml 26 | 28 | 29 | 30 | 31 | 32 | 34 | 54 | 170 | 171 | -------------------------------------------------------------------------------- /img/sponsor_mx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/img/sponsor_mx.png -------------------------------------------------------------------------------- /img/sponsor_syndica.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/img/sponsor_syndica.jpg -------------------------------------------------------------------------------- /img/sponsor_threefold.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 92 | 93 | 94 | 96 | 101 | 103 | 105 | 107 | 114 | 115 | 119 | 120 | 121 | -------------------------------------------------------------------------------- /img/sublime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/img/sublime.png -------------------------------------------------------------------------------- /img/v-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/img/v-logo.png -------------------------------------------------------------------------------- /img/veasel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/img/veasel.png -------------------------------------------------------------------------------- /img/vim.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/img/vim.png -------------------------------------------------------------------------------- /img/vscode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/img/vscode.png -------------------------------------------------------------------------------- /img/youtube_comp_speed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/img/youtube_comp_speed.png -------------------------------------------------------------------------------- /img/youtube_compile_speed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/img/youtube_compile_speed.png -------------------------------------------------------------------------------- /indonesian.tr: -------------------------------------------------------------------------------- 1 | examples 2 | Contoh-contoh 3 | ----- 4 | documentation 5 | Dokumentasi 6 | ----- 7 | modules 8 | Modul-modul 9 | ----- 10 | faq 11 | FAQ 12 | ----- 13 | built_in_v 14 | Dibuat dengan V 15 | ----- 16 | the_v_lang 17 | Bahasa Pemrograman V 18 | ----- 19 | v_slogan 20 | Bahasa yang simple, cepat, aman, dan terkompilasi untuk mengembangkan perangkat lunak yang mudah dipelihara 21 | ----- 22 | includes_binaries 23 | termasuk biner-biner untuk 3 sistem 24 | ----- 25 | install_source 26 | Atau unduh V dari sumber 27 | ----- 28 | couple_seconds 29 | proses ini akan membutuhkan beberapa detik 30 | ----- 31 | wip_info 32 | V adalah bahasa pemrograman baru yang masih terus-menerus dikembangkan. Fitur-fitur yang masih dalam proses pengembangan ditandai dengan $wip 33 |
34 | Segala hal yang ada di halaman ini dan dokumentasi sudah diimplementasi dan open-source. 35 |

36 | Sejak V 1.0 yang direncanakan akan rilis pada Desember 2019, tidak akan ada lagi $wip. 37 | ----- 38 | forum 39 | Forum 40 | ----- 41 | blog 42 | Blog 43 | ----- 44 | fast_compilation 45 | Kompilasi yang cepat 46 | ----- 47 | safety 48 | Keamanan 49 | ----- 50 | performance 51 | Performa 52 | ----- 53 | simple_language_for_maintainable_programs 54 | Bahasa simple untuk membuat program yang dapat dipelihara 55 | ----- 56 | zero_deps 57 | Compiler 400 KB tanpa dependensi 58 | ----- 59 | c_translation 60 | Terjemahan C/C++ 61 | ----- 62 | introduction 63 | Pengantar 64 | ----- 65 | comments 66 | Komentar 67 | ----- 68 | functions 69 | Fungsi 70 | ----- 71 | variables 72 | Variabel 73 | ----- 74 | basic_types 75 | Tipe-tipe Dasar 76 | ----- 77 | strings 78 | Strings 79 | ----- 80 | arrays 81 | Arrays 82 | ----- 83 | maps 84 | Maps 85 | ----- 86 | if 87 | If 88 | ----- 89 | in_op 90 | Operator In 91 | ----- 92 | for_loop 93 | Looping For 94 | ----- 95 | switch 96 | Switch 97 | ----- 98 | structs 99 | Structs 100 | ----- 101 | access_mod 102 | Pengubah akses 103 | ----- 104 | methods 105 | Metode 106 | ----- 107 | pure_fns 108 | Fungsi murni 109 | ----- 110 | high_fns 111 | Fungsi tingkat tinggi 112 | ----- 113 | constants 114 | Konstanta 115 | ----- 116 | modules 117 | Modul 118 | ----- 119 | interfaces 120 | Antarmuka 121 | ----- 122 | enums 123 | Enums 124 | ----- 125 | optionals_and_errors 126 | Jenis opsi & penanganan kesalahan 127 | ----- 128 | generics 129 | Generics 130 | ----- 131 | concurrency 132 | Konkurensi 133 | ----- 134 | decoding_json 135 | Decoding JSON 136 | ----- 137 | testing 138 | Pengujian 139 | ----- 140 | memory_management 141 | Manajemen memori 142 | ----- 143 | fast_comp1 144 | V mengkompilasi sekitar 100 ribu sampai 1.2 juta baris kode per detik per inti CPU. 145 | ----- 146 | fast_comp2 147 | V mengkompilasi sendiri dalam waktu 0.15 - 0.6 detik. 148 | ----- 149 | fast_comp3 150 | ----- 151 | fast_comp4 152 | ----- 153 | no_null 154 | Tidak ada null 155 | ----- 156 | -------------------------------------------------------------------------------- /japanese.tr: -------------------------------------------------------------------------------- 1 | examples 2 | 実装例 3 | ----- 4 | documentation 5 | ドキュメント 6 | ----- 7 | modules 8 | モジュール 9 | ----- 10 | faq 11 | よくある質問 12 | ----- 13 | built_in_v 14 | Built in V 15 | ----- 16 | the_v_lang 17 | プログラミング言語V 18 | ----- 19 | v_slogan 20 | 保守性に優れたソフトウェアを開発するための、シンプル・高速・安全なコンパイラ型言語 21 | ----- 22 | includes_binaries 23 | 3つのOS向けのバイナリがあります 24 | ----- 25 | install_source 26 | またはVをソースコードからインストール 27 | ----- 28 | couple_seconds 29 | これには数秒かかります 30 | ----- 31 | wip_info 32 | Vは活発に開発が行われていますが、開発の初期段階にある言語です。まだ開発中の機能には $wip タグがついています。このページ内で $wip タグのないものは全て実装されておりオープンソース化されています。 33 | 34 | V 1.0の公開は2019年12月に予定されており、 その頃には $wip タグは全て取り除かれる予定です。 35 | ----- 36 | forum 37 | フォーラム 38 | ----- 39 | blog 40 | ブログ 41 | ----- 42 | fast_compilation 43 | 高速なコンパイル 44 | ----- 45 | safety 46 | 安全性 47 | ----- 48 | performance 49 | パフォーマンス 50 | ----- 51 | simple_language_for_maintainable_programs 52 | 保守性に優れたプログラムを構築するためのシンプルな言語 53 | ----- 54 | zero_deps 55 | 依存性0で400 KBのコンパイラ 56 | ----- 57 | c_translation 58 | C/C++への変換 59 | ----- 60 | introduction 61 | はじめに 62 | ----- 63 | comments 64 | コメント 65 | ----- 66 | functions 67 | 関数 68 | ----- 69 | variables 70 | 変数 71 | ----- 72 | basic_types 73 | 基本型 74 | ----- 75 | strings 76 | 文字列 77 | ----- 78 | arrays 79 | 配列 80 | ----- 81 | maps 82 | マップ 83 | ----- 84 | if 85 | If条件分岐 86 | ----- 87 | in_op 88 | In演算子 89 | ----- 90 | for_loop 91 | Forループ 92 | ----- 93 | switch 94 | Switch 95 | ----- 96 | structs 97 | 構造体 98 | ----- 99 | access_mod 100 | アクセス修飾子 101 | ----- 102 | methods 103 | メソッド 104 | ----- 105 | pure_fns 106 | 純粋関数 107 | ----- 108 | high_fns 109 | 高階関数 110 | ----- 111 | constants 112 | 定数 113 | ----- 114 | modules 115 | モジュール 116 | ----- 117 | interfaces 118 | インターフェース 119 | ----- 120 | enums 121 | 列挙型 122 | ----- 123 | optionals_and_errors 124 | Optional型とエラーハンドリング 125 | ----- 126 | generics 127 | ジェネリクス 128 | ----- 129 | concurrency 130 | 並列処理 131 | ----- 132 | decoding_json 133 | JSONのデコード 134 | ----- 135 | testing 136 | テスト 137 | ----- 138 | memory_management 139 | メモリ管理 140 | ----- 141 | fast_comp1 142 | VはCPUコアあたり毎秒約120万行のコードをコンパイルします。 143 | ----- 144 | fast_comp2 145 | このような速度は、直接のマシンコード生成 $wip と強力なモジュール性によって達成されます。 146 | ----- 147 | fast_comp3 148 | Vは0.3-0.6秒で自身をコンパイルします。 149 | ----- 150 | fast_comp4 151 | VはCを出力することもでき、その場合コンパイル速度は毎秒約100k行/CPUに低下します。 152 | ----- 153 | no_null 154 | nullなし 155 | -------------------------------------------------------------------------------- /norwegian.tr: -------------------------------------------------------------------------------- 1 | examples 2 | Eksempler 3 | ----- 4 | documentation 5 | Dokumentasjon 6 | ----- 7 | modules 8 | Moduler 9 | ----- 10 | faq 11 | Ofte stilte spørsmål 12 | ----- 13 | built_in_v 14 | Skapt i V 15 | ----- 16 | the_v_lang 17 | Dataprogrammeringsspråket V 18 | ----- 19 | v_slogan 20 | Enkelt, raskt, sikkert, kompilert programmeringsspråk for vedlikeholdbar programvarers utvikling 21 | ----- 22 | includes_binaries 23 | inkluderer programstøtte for 3 ulike operativsystemer 24 | ----- 25 | install_source 26 | Eller installer V fra kildekode 27 | ----- 28 | couple_seconds 29 | dette vil ta noen få sekunder 30 | ----- 31 | wip_info 32 | V er et aktivt utviklet programmeringsspråk i sin tidlige fase. 33 | Funksjonaliteter som det fortsatt jobbes på er markert med $wip merknaden 34 |
35 | Alt some står på denne siden og i dokumentasjonen er implementert og åpen kildekode. 36 |

37 | Når vi lanserer V 1.0 i desember 2019 vil det ikke lenger være noen $wip merknader igjen. 38 | ----- 39 | forum 40 | Nettforum 41 | ----- 42 | blog 43 | Blogg 44 | ----- 45 | fast_compilation 46 | Rask kompilering 47 | ----- 48 | safety 49 | Sikkerhet 50 | ----- 51 | performance 52 | Ytelse 53 | ----- 54 | simple_language_for_maintainable_programs 55 | Enkelt programmeringsspråk for utvikling av vedlikeholdbar programvare 56 | ----- 57 | zero_deps 58 | 400 KB kompilator helt uavhengig andre biblioteker 59 | ----- 60 | c_translation 61 | C/C++ oversettelse 62 | ----- 63 | introduction 64 | Innledning 65 | ----- 66 | comments 67 | Kommentarer 68 | ----- 69 | functions 70 | Funksjoner 71 | ----- 72 | variables 73 | Variabler 74 | ----- 75 | basic_types 76 | Enkle basistyper 77 | ----- 78 | strings 79 | Teksttyper 80 | ----- 81 | arrays 82 | Matriser 83 | ----- 84 | maps 85 | Kart 86 | ----- 87 | if 88 | If 89 | ----- 90 | in_op 91 | In operatoren 92 | ----- 93 | for_loop 94 | For løkker 95 | ----- 96 | switch 97 | Brytere 98 | ----- 99 | structs 100 | Strukter 101 | ----- 102 | access_mod 103 | Tilgangsmodifikatorer 104 | ----- 105 | methods 106 | Metoder 107 | ----- 108 | pure_fns 109 | Enkle funksjoner 110 | ----- 111 | high_fns 112 | Høytnivåsprogrammering 113 | ----- 114 | constants 115 | Konstanter 116 | ----- 117 | modules 118 | Moduler 119 | ----- 120 | interfaces 121 | Interfacer 122 | ----- 123 | enums 124 | Enumer 125 | ----- 126 | optionals_and_errors 127 | Valgtyper og behandling av programfeil 128 | ----- 129 | generics 130 | Generikk 131 | ----- 132 | concurrency 133 | Samtidighet 134 | ----- 135 | decoding_json 136 | JSON dekoding 137 | ----- 138 | testing 139 | Feilsøking 140 | ----- 141 | memory_management 142 | Minnehåndtering 143 | ----- 144 | fast_comp1 145 | V kompilerer mellom ≈100k og 1.2 millioner kodelinjer hvert sekund per prosessorkjerne. 146 | ----- 147 | fast_comp2 148 | V kompilerer seg selv på 0.15 til 0.6 sekunder. 149 | ----- 150 | fast_comp3 151 | ----- 152 | fast_comp4 153 | ----- 154 | no_null 155 | Ingen null 156 | ----- 157 | -------------------------------------------------------------------------------- /portuguese.tr: -------------------------------------------------------------------------------- 1 | examples 2 | Exemplos 3 | ----- 4 | documentation 5 | Documentação 6 | ----- 7 | modules 8 | Módulos 9 | ----- 10 | faq 11 | FAQ 12 | ----- 13 | built_in_v 14 | Feito em V 15 | ----- 16 | the_v_lang 17 | A Linguagem de Programação V 18 | ----- 19 | v_slogan 20 | Linguagem compilada simples, rápida e segura para o desenvolvimento de software sustentável 21 | ----- 22 | includes_binaries 23 | inclui binários para 3 sistemas 24 | ----- 25 | install_source 26 | Ou instale V pelo código fonte 27 | ----- 28 | couple_seconds 29 | isso pode demorar um pouco 30 | ----- 31 | wip_info 32 | V é uma linguagem ativamente desenvolvida em estágio inicial. 33 | Os recursos que ainda estão sendo trabalhados estão marcados com $wip 34 |
35 | Todo o resto nesta página e nos documentos foram implementados e são de código aberto. 36 |

37 | No momento do lançamento da V1.0 planejado para dezembro de 2019, não haverá mais $wip. 38 | ----- 39 | forum 40 | Fórum 41 | ----- 42 | blog 43 | Blog 44 | ----- 45 | fast_compilation 46 | Compilação rápida 47 | ----- 48 | safety 49 | Segurança 50 | ----- 51 | performance 52 | Performance 53 | ----- 54 | simple_language_for_maintainable_programs 55 | Linguagem simples para construir programas sustentáveis 56 | ----- 57 | zero_deps 58 | Compilador de 400KB com zero dependências 59 | ----- 60 | c_translation 61 | Tradução de C/C++ 62 | ----- 63 | introduction 64 | Introdução 65 | ----- 66 | comments 67 | Comentários 68 | ----- 69 | functions 70 | Funções 71 | ----- 72 | variables 73 | Variáveis 74 | ----- 75 | basic_types 76 | Tipos básicos 77 | ----- 78 | strings 79 | Strings 80 | ----- 81 | arrays 82 | Arrays 83 | ----- 84 | maps 85 | Maps 86 | ----- 87 | if 88 | If 89 | ----- 90 | in_op 91 | Operador in 92 | ----- 93 | for_loop 94 | Laço for 95 | ----- 96 | switch 97 | Switch 98 | ----- 99 | structs 100 | Structs 101 | ----- 102 | access_mod 103 | Modificadores de acesso 104 | ----- 105 | methods 106 | Métodos 107 | ----- 108 | pure_fns 109 | Funções puras 110 | ----- 111 | high_fns 112 | Funções de ordem superior 113 | ----- 114 | constants 115 | Constantes 116 | ----- 117 | modules 118 | Módulos 119 | ----- 120 | interfaces 121 | Interfaces 122 | ----- 123 | enums 124 | Enums 125 | ----- 126 | optionals_and_errors 127 | Tipos opcionais e tratamento de erros 128 | ----- 129 | generics 130 | Generics 131 | ----- 132 | concurrency 133 | Concorrência 134 | ----- 135 | decoding_json 136 | Decodificação JSON 137 | ----- 138 | testing 139 | Teste 140 | ----- 141 | memory_management 142 | Gerenciamento de memória 143 | ----- 144 | fast_comp1 145 | V compila entre ≈100k e 1.2 milhões de linhas de código por segundo por núcleo de CPU. 146 | ----- 147 | fast_comp2 148 | V se compila em 0.15 - 0.6 segundos. 149 | ----- 150 | fast_comp3 151 | Essa velocidade é alcançada devido à geração direta de $wip em código nativo e forte modularidade do código. 152 | ----- 153 | fast_comp4 154 | ----- 155 | no_null 156 | Sem ponteiros nulos 157 | ----- 158 | -------------------------------------------------------------------------------- /russian.tr: -------------------------------------------------------------------------------- 1 | examples 2 | Примеры 3 | ----- 4 | documentation 5 | Документация 6 | ----- 7 | modules 8 | Модули 9 | ----- 10 | faq 11 | FAQ 12 | ----- 13 | built_in_v 14 | Написано на V 15 | ----- 16 | the_v_lang 17 | Язык программирования V 18 | ----- 19 | v_slogan 20 | Простой, быстрый, безопасный язык для разработки легко поддерживаемых приложений 21 | ----- 22 | includes_binaries 23 | включает в себя бинарые файлы для 3 систем 24 | ----- 25 | install_source 26 | или установите V из исходного кода 27 | ----- 28 | couple_seconds 29 | это займет пару секунд 30 | ----- 31 | wip_info 32 | V является активно развивающимся языком на ранней стадии. 33 | Функции над которыми еще ведется работа, отмечены знаком $wip 34 | 35 | Всё остальное на этой странице и в документах было реализовано с открытым исходным кодом. 36 | К моменту выхода V 1.0, запланированному на декабрь 2019 года, не останется $wip. 37 | ----- 38 | forum 39 | Форум 40 | ----- 41 | blog 42 | Блог 43 | ----- 44 | ----- 45 | fast_compilation 46 | Быстрая компиляция 47 | ----- 48 | safety 49 | Безопасность 50 | ----- 51 | performance 52 | Производительность 53 | ----- 54 | simple_language_for_maintainable_programs 55 | Простота 56 | ----- 57 | zero_deps 58 | 400 KB компилятор без зависимостей 59 | ----- 60 | c_translation 61 | Трансляция из C/C++ 62 | ----- 63 | introduction 64 | Введение 65 | ----- 66 | comments 67 | Комментарии 68 | ----- 69 | functions 70 | Функции 71 | ----- 72 | variables 73 | Переменные 74 | ----- 75 | basic_types 76 | Базовые типы 77 | ----- 78 | strings 79 | Строки 80 | ----- 81 | arrays 82 | Массивы 83 | ----- 84 | maps 85 | Maps 86 | ----- 87 | if 88 | If 89 | ----- 90 | in_op 91 | Оператор in 92 | ----- 93 | for_loop 94 | Цикл for 95 | ----- 96 | switch 97 | Switch 98 | ----- 99 | structs 100 | Cтруктуры 101 | ----- 102 | access_mod 103 | Модификаторы доступа 104 | ----- 105 | methods 106 | Методы 107 | ----- 108 | pure_fns 109 | Чистые функции 110 | ----- 111 | high_fns 112 | Функции высокого приоритета 113 | ----- 114 | constants 115 | Константы 116 | ----- 117 | modules 118 | Модули 119 | ----- 120 | interfaces 121 | Интерфейсы 122 | ----- 123 | enums 124 | Enums 125 | ----- 126 | optionals_and_errors 127 | Опц. типы и обработка ошибок 128 | ----- 129 | generics 130 | Generics 131 | ----- 132 | concurrency 133 | Concurrency 134 | ----- 135 | decoding_json 136 | Работа с JSON 137 | ----- 138 | testing 139 | Тестирование 140 | ----- 141 | memory_management 142 | Управление памятью 143 | ----- 144 | fast_comp1 145 | V компилирует ≈1.2 миллиона строк кода в секунду на одном ядре. 146 | ----- 147 | fast_comp2 148 | Такая скорость достигается за счет прямой генерации в машинный (нативный) код $wip и сильной модульности кода. 149 | ----- 150 | fast_comp3 151 | V компилирует сам себя за 0.3 - 0.6 секунд. 152 | ----- 153 | fast_comp4 154 | V также может использовать C, тогда скорость компиляции падает до ≈100k строк/сек/CPU. 155 | ----- 156 | no_null 157 | Нет нулевых указателей 158 | ----- 159 | -------------------------------------------------------------------------------- /spanish.tr: -------------------------------------------------------------------------------- 1 | examples 2 | Ejemplos 3 | ----- 4 | documentation 5 | Documentación 6 | ----- 7 | modules 8 | Módulos 9 | ----- 10 | faq 11 | FAQ 12 | ----- 13 | built_in_v 14 | Creado con V 15 | ----- 16 | the_v_lang 17 | The V Programming Language 18 | ----- 19 | v_slogan 20 | Lenguaje simple, rápido, seguro y compilado para el desarrollo de software mantenible 21 | ----- 22 | includes_binaries 23 | incluye binarios para 3 sistemas 24 | ----- 25 | install_source 26 | O instala V desde el código fuente 27 | ----- 28 | couple_seconds 29 | esto puede tardar un par de segundos 30 | ----- 31 | wip_info 32 | V es un lenguaje desarrollado activamente en una fase temprana. 33 | Las características que están siendo desarrolladas están marcadas con $wip 34 | 35 | El resto de cosas de esta página y la documentación han sido implementados y su código liberado. 36 | Para cuando llegue la fecha planeada de V 1.0 en Diciembre de 2019, ya no quederán más $wip. 37 | ----- 38 | forum 39 | Foro 40 | ----- 41 | blog 42 | Blog 43 | ----- 44 | fast_compilation 45 | Compilación rápida 46 | ----- 47 | safety 48 | Seguridad 49 | ----- 50 | performance 51 | Rendimiento 52 | ----- 53 | simple_language_for_maintainable_programs 54 | Lenguaje simple para crear programas mantenibles 55 | ----- 56 | zero_deps 57 | Compilador de 400 KB sin dependencias 58 | ----- 59 | c_translation 60 | Traducción desde C/C++ 61 | ----- 62 | introduction 63 | Introducción 64 | ----- 65 | comments 66 | Comentarios 67 | ----- 68 | functions 69 | Funciones 70 | ----- 71 | variables 72 | Variables 73 | ----- 74 | basic_types 75 | Tipos básicos 76 | ----- 77 | strings 78 | Strings 79 | ----- 80 | arrays 81 | Arrays 82 | ----- 83 | maps 84 | Maps 85 | ----- 86 | if 87 | If 88 | ----- 89 | in_op 90 | Operador In 91 | ----- 92 | for_loop 93 | Bucle for 94 | ----- 95 | switch 96 | Switch 97 | ----- 98 | structs 99 | Structs 100 | ----- 101 | access_mod 102 | Modificadores de acceso 103 | ----- 104 | methods 105 | Métodos 106 | ----- 107 | pure_fns 108 | Funciones puras 109 | ----- 110 | high_fns 111 | Funciones de orden superior 112 | ----- 113 | constants 114 | Constantes 115 | ----- 116 | modules 117 | Modulos 118 | ----- 119 | interfaces 120 | Interfaces 121 | ----- 122 | enums 123 | Enums 124 | ----- 125 | optionals_and_errors 126 | Tipos opcionales y manejo de errores 127 | ----- 128 | generics 129 | Generics 130 | ----- 131 | concurrency 132 | Concurrencia 133 | ----- 134 | decoding_json 135 | Decodificación de JSON 136 | ----- 137 | testing 138 | Pruebas 139 | ----- 140 | memory_management 141 | Manejo de memoria 142 | ----- 143 | fast_comp1 144 | V compila entre ≈100k y 1.2 millones de lineas de código cada segundo por núcleo de CPU 145 | ----- 146 | fast_comp2 147 | V se compila a si mismo entre 0.15 - 0.6 segundos 148 | ----- 149 | -------------------------------------------------------------------------------- /turkish.tr: -------------------------------------------------------------------------------- 1 | examples 2 | Örnekler 3 | ----- 4 | documentation 5 | Dökümantasyon 6 | ----- 7 | modules 8 | Modüller 9 | ----- 10 | faq 11 | SSS 12 | ----- 13 | built_in_v 14 | V ile build edildi 15 | ----- 16 | the_v_lang 17 | The V Programlama Dili 18 | ----- 19 | v_slogan 20 | Bakımı kolay yazılım geliştirmek için basit, hızlı, güvenli, derlenmiş dil 21 | ----- 22 | includes_binaries 23 | 3 sistem için binary dosyalarını içerir 24 | ----- 25 | install_source 26 | Ya da kaynak koddan V yükle 27 | ----- 28 | couple_seconds 29 | Birkaç saniye alacak 30 | ----- 31 | wip_info 32 | V, erken bir aşamada aktif olarak geliştirilmiş bir dildir. 33 | Hala üzerinde çalışılan özellikler $wip ile işaretlenmiştir 34 |
35 | Bu sayfadaki ve dokümanlardaki diğer her şey implemente edildi ve açık kaynaklıdır. 36 |

37 | Aralık 2019 için planlanan V 1.0 sürümüne kadar artık $wip kalmayacak. 38 | ----- 39 | forum 40 | Forum 41 | ----- 42 | blog 43 | Blog 44 | ----- 45 | fast_compilation 46 | Hızlı derleme 47 | ----- 48 | safety 49 | Güvenlik 50 | ----- 51 | performance 52 | Performans 53 | ----- 54 | simple_language_for_maintainable_programs 55 | Sürdürülebilir programlar oluşturmak için basit dil 56 | ----- 57 | zero_deps 58 | Sıfır bağımlılığa sahip 400 KB derleyici 59 | ----- 60 | c_translation 61 | C/C++ çeviri 62 | ----- 63 | introduction 64 | Talimat 65 | ----- 66 | comments 67 | Yorumlar 68 | ----- 69 | functions 70 | Fonksiyonlar 71 | ----- 72 | variables 73 | Değişkenler 74 | ----- 75 | basic_types 76 | Basit tipler 77 | ----- 78 | strings 79 | Stringler 80 | ----- 81 | arrays 82 | Diziler 83 | ----- 84 | maps 85 | Mapler 86 | ----- 87 | if 88 | If 89 | ----- 90 | in_op 91 | In operatörü 92 | ----- 93 | for_loop 94 | For döngüsü 95 | ----- 96 | switch 97 | Switch 98 | ----- 99 | structs 100 | Struct 101 | ----- 102 | access_mod 103 | Erişim niteleyicileri 104 | ----- 105 | methods 106 | Metotlar 107 | ----- 108 | pure_fns 109 | Saf fonksiyonlar 110 | ----- 111 | high_fns 112 | Yüksek dereceli fonksiyonlar 113 | ----- 114 | constants 115 | Sabitler 116 | ----- 117 | modules 118 | Modüller 119 | ----- 120 | interfaces 121 | Arayüzler 122 | ----- 123 | enums 124 | Enumlar 125 | ----- 126 | optionals_and_errors 127 | Option tipleri & hata işleme 128 | ----- 129 | generics 130 | Jenerikler 131 | ----- 132 | concurrency 133 | Eşzamanlılık 134 | ----- 135 | decoding_json 136 | JSON çözme 137 | ----- 138 | testing 139 | Testing 140 | ----- 141 | memory_management 142 | Bellek yönetimi 143 | ----- 144 | fast_comp1 145 | V, CPU çekirdeği başına saniyede ≈100k ila 1.2 milyon satır kod derler. 146 | ----- 147 | fast_comp2 148 | V kendini 0.15 - 0.6 saniye içinde derler. 149 | ----- 150 | fast_comp3 151 | ----- 152 | fast_comp4 153 | ----- 154 | no_null 155 | Null yok 156 | ----- 157 | -------------------------------------------------------------------------------- /website2_v/main.v: -------------------------------------------------------------------------------- 1 | module main 2 | 3 | import veb 4 | // import databases 5 | import os 6 | import time 7 | 8 | const port = 8082 9 | 10 | pub struct App { 11 | veb.StaticHandler 12 | } 13 | 14 | struct Context { 15 | veb.Context 16 | mut: 17 | lang Lang 18 | } 19 | 20 | enum Lang { 21 | en 22 | ru 23 | // cn 24 | // es 25 | // pt 26 | // fr 27 | // jp 28 | } 29 | 30 | // pub fn (app App) before_request() { 31 | // println('[web] before_request: ${app.req.method} ${app.req.url}') 32 | //} 33 | 34 | fn main() { 35 | /* 36 | mut db := databases.create_db_connection() or { panic(err) } 37 | 38 | sql db { 39 | create table User 40 | create table Product 41 | } or { panic('error on create table: ${err}') } 42 | 43 | db.close() or { panic(err) } 44 | 45 | */ 46 | mut app := &App{} 47 | // app.serve_static('/favicon.ico', 'src/assets/favicon.ico') 48 | // makes all static files available. 49 | app.mount_static_folder_at(os.resource_abs_path('static'), '/')! 50 | /* 51 | app.mount_static_folder_at(os.resource_abs_path('.'), '/') or { 52 | println(err) 53 | return 54 | } 55 | */ 56 | 57 | veb.run[App, Context](mut app, port) 58 | } 59 | 60 | pub fn (mut app App) index() veb.Result { 61 | ctx.set_lang() // TODO use middleware 62 | title := 'vweb app' 63 | 64 | return $veb.html() 65 | } 66 | 67 | pub fn (mut ctx Context) set_lang() { 68 | ctx.lang = Lang.from_string(ctx.get_cookie('lang') or { 'en' }) or { Lang.en } 69 | } 70 | 71 | fn build_tr_menu(cur_lang Lang) string { 72 | println('BUILD TR ${cur_lang}') 73 | // mut sb := strings.new_builder() 74 | // sb.write_string('' + 77 | '' + 78 | '' 79 | /* 80 | s := match cur_lang { 81 | .ru { 'English' } 82 | .en { 'Русский' } 83 | } 84 | */ 85 | return s 86 | } 87 | 88 | @['/change_lang/:lang'; post] 89 | pub fn (mut app App) change_lang(lang string) veb.Result { 90 | println('CHANGING LANG ${lang}') 91 | expire_date := time.now().add_days(400) 92 | ctx.set_cookie(name: 'lang', value: lang, path: '/', expires: expire_date) 93 | // return ctx.redirect('/') 94 | return ctx.json('ok') 95 | } 96 | -------------------------------------------------------------------------------- /website2_v/static/app.css: -------------------------------------------------------------------------------- 1 | .select { 2 | position: relative; 3 | display: inline-block; 4 | width: 100% 5 | } 6 | 7 | .select select { 8 | font-size: 14px; 9 | display: inline-block; 10 | width: 100%; 11 | cursor: pointer; 12 | padding: 10px 15px; 13 | outline: 0; 14 | border: none; 15 | border-radius: 8px; 16 | overflow: hidden; 17 | background: #334; 18 | color: #ccc; 19 | appearance: none; 20 | -webkit-appearance: none; 21 | -moz-appearance: none 22 | } 23 | 24 | .select select::-ms-expand { 25 | display: none 26 | } 27 | 28 | .select select:focus, 29 | .select select:hover { 30 | color: #ddd; 31 | background: #445 32 | } 33 | 34 | .select select:disabled { 35 | opacity: .5; 36 | pointer-events: none 37 | } 38 | 39 | .select_arrow { 40 | position: absolute; 41 | pointer-events: none; 42 | top: 12px; 43 | right: 15px; 44 | width: 0; 45 | height: 0; 46 | border: solid #aaa; 47 | border-width: 0 3px 3px 0; 48 | display: inline-block; 49 | padding: 3px; 50 | transform: rotate(45deg); 51 | -webkit-transform: rotate(45deg) 52 | } 53 | 54 | .select select:focus~.select_arrow, 55 | .select select:hover~.select_arrow { 56 | border-color: #ccc 57 | } 58 | 59 | .select select:disabled~.select_arrow { 60 | border-top-color: #ccc 61 | } 62 | 63 | .svg-inline--fa { 64 | display: inline-block; 65 | font-size: inherit; 66 | height: 1em; 67 | overflow: visible; 68 | vertical-align: -.125em 69 | } 70 | 71 | .svg-inline--fa.fa-w-14 { 72 | width: .875em 73 | } 74 | 75 | body, 76 | html { 77 | height: 100% 78 | } 79 | 80 | body { 81 | margin: 0; 82 | font-family: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif 83 | } 84 | 85 | .content { 86 | grid-area: content; 87 | height: 100%; 88 | width: 100% 89 | } 90 | 91 | #app { 92 | display: grid; 93 | grid-template-columns: 1fr; 94 | grid-template-rows: 72px 1fr; 95 | grid-template-areas: "header" "content"; 96 | width: 100% 97 | } 98 | 99 | a { 100 | color: #4078c0; 101 | text-decoration: none 102 | } 103 | 104 | .flex { 105 | flex: 1 106 | } 107 | 108 | button:focus, 109 | input:focus, 110 | textarea:focus { 111 | outline: 0 112 | } 113 | 114 | .faq { 115 | max-width: 900px; 116 | margin-left: auto; 117 | margin-right: auto; 118 | margin-bottom: 64px 119 | } 120 | 121 | .faq #faq { 122 | text-align: center; 123 | font-weight: 500 124 | } 125 | 126 | .faq .question { 127 | margin-bottom: 46px 128 | } 129 | 130 | .faq table { 131 | border-collapse: collapse 132 | } 133 | 134 | .faq td { 135 | border: 1px solid #dfdfdf; 136 | padding: 8px 12px 137 | } 138 | 139 | @media (max-width:1100px) { 140 | #app { 141 | grid-template-rows: auto 1fr 142 | } 143 | } 144 | 145 | .codeblock { 146 | background: #334; 147 | padding: 12px 12px 4px 12px; 148 | max-width: calc(100vw - 56px); 149 | border-radius: 6px; 150 | margin: 0; 151 | color: #c9c5c4; 152 | font-size: 15px; 153 | position: relative; 154 | font-family: "Roboto Mono", "Courier New", Menlo, "DejaVu Sans Mono", Monaco, Courier, monospace 155 | } 156 | 157 | .codeblock .play-btn-fixed { 158 | position: absolute; 159 | top: 10px; 160 | right: 10px 161 | } 162 | 163 | .codeblock pre { 164 | overflow-x: auto; 165 | overflow-y: hidden; 166 | line-height: 1.2; 167 | font-family: "Roboto Mono", "Courier New", Menlo, "DejaVu Sans Mono", Monaco, Courier, monospace; 168 | white-space: pre-wrap 169 | } 170 | 171 | .codeblock textarea { 172 | font-size: 15px; 173 | line-height: 1.2; 174 | font-family: "Roboto Mono", "Courier New", Menlo, "DejaVu Sans Mono", Monaco, Courier, monospace; 175 | position: absolute; 176 | top: 25px; 177 | left: 10px; 178 | height: calc(100% - 48px); 179 | width: calc(100% - 22px); 180 | caret-color: #fff; 181 | color: transparent; 182 | background: 0 0; 183 | overflow: hidden; 184 | border: none; 185 | resize: none 186 | } 187 | 188 | .codeblock textarea.no-header { 189 | top: 25px 190 | } 191 | 192 | .codeblock .titlebar { 193 | display: flex; 194 | align-items: center; 195 | margin-bottom: 6px; 196 | position: relative; 197 | top: -2px 198 | } 199 | 200 | .codeblock .play-btn { 201 | background: 0 0; 202 | border: none; 203 | margin: 0; 204 | background: #ffffff33; 205 | color: #ffeeeecf; 206 | border-radius: 4px; 207 | padding: 4px 12px; 208 | font-size: 12px; 209 | z-index: 10; 210 | cursor: pointer 211 | } 212 | 213 | .codeblock .play-btn svg { 214 | height: 1.1em 215 | } 216 | 217 | .codeblock .play-btn:hover { 218 | background: #ffffff55; 219 | color: #ffeeeedd 220 | } 221 | 222 | .codeblock .keyword { 223 | color: #dcd02d 224 | } 225 | 226 | .codeblock .return { 227 | color: #ea3b7b 228 | } 229 | 230 | .codeblock .key { 231 | color: #5f84ba 232 | } 233 | 234 | .codeblock .string { 235 | color: #ca763c 236 | } 237 | 238 | .codeblock .number { 239 | color: #b068e7 240 | } 241 | 242 | .codeblock .comment, 243 | .codeblock .separator { 244 | color: #9e9795 245 | } 246 | 247 | .codeblock .definition, 248 | .codeblock .type { 249 | color: #c5ac41 250 | } 251 | 252 | .documentation { 253 | display: flex; 254 | justify-content: center; 255 | max-width: 1200px; 256 | height: calc(100vh - 72px); 257 | padding-right: 6px; 258 | margin-left: auto; 259 | margin-right: auto; 260 | overflow-y: scroll 261 | } 262 | 263 | .documentation .toc { 264 | margin-right: 32px 265 | } 266 | 267 | .documentation .toc ul { 268 | padding-inline-start: 24px 269 | } 270 | 271 | .documentation .markdown { 272 | margin-left: 32px; 273 | padding-bottom: 64px; 274 | max-width: calc(100vw - 24px) 275 | } 276 | 277 | .documentation .markdown h1, 278 | .documentation .markdown h2, 279 | .documentation .markdown h3 { 280 | font-weight: 400 281 | } 282 | 283 | .documentation .markdown h1 { 284 | margin: 12px 0 285 | } 286 | 287 | .documentation .markdown h2 { 288 | margin: 32px 0 8px 0 289 | } 290 | 291 | .documentation .markdown h3 { 292 | margin: 8px 0 293 | } 294 | 295 | .documentation .markdown a { 296 | word-break: break-word 297 | } 298 | 299 | .documentation .markdown p { 300 | margin: 8px 0 301 | } 302 | 303 | .documentation .markdown p code { 304 | background: #eee; 305 | padding: 2px 6px; 306 | border-radius: 5px; 307 | font-size: 14px 308 | } 309 | 310 | .documentation .markdown .markdownIt-Anchor { 311 | color: #c3cad6 312 | } 313 | 314 | .documentation .markdown .markdownIt-Anchor:hover { 315 | color: #4078c0 316 | } 317 | 318 | .documentation .markdown .codeblock { 319 | margin-bottom: 4px 320 | } 321 | 322 | @media (max-width:1100px) { 323 | .documentation { 324 | height: calc(100vh - 143px) 325 | } 326 | } 327 | 328 | @media (max-width:845px) { 329 | .documentation { 330 | height: calc(100vh - 154px) 331 | } 332 | } 333 | 334 | @media (max-width:800px) { 335 | .documentation { 336 | flex-direction: column; 337 | align-items: center; 338 | height: 100%; 339 | overflow-y: visible; 340 | padding-right: 0 341 | } 342 | .documentation .markdown { 343 | margin-left: 8px 344 | } 345 | .documentation .toc { 346 | margin-right: 0; 347 | margin-bottom: 32px 348 | } 349 | } 350 | 351 | .header { 352 | grid-area: header; 353 | height: 100%; 354 | width: 100%; 355 | position: sticky; 356 | background: #fff; 357 | z-index: 100; 358 | top: 0; 359 | display: flex; 360 | align-items: center 361 | } 362 | 363 | .header .logo { 364 | width: 32px; 365 | margin-bottom: -3px; 366 | margin-right: 16px 367 | } 368 | 369 | .header .donate-button { 370 | display: flex; 371 | /*flex-direction: column;*/ 372 | align-items: center; 373 | margin-top: 2px; 374 | margin-left: 12px 375 | } 376 | 377 | .header .patreon img { 378 | height: 33px 379 | } 380 | 381 | .header .nav { 382 | display: flex; 383 | flex-wrap: wrap; 384 | justify-content: center 385 | } 386 | 387 | .header .nav a:hover { 388 | color:#333; 389 | } 390 | 391 | .header .nav .item { 392 | color: #777; 393 | text-decoration: none; 394 | padding-right: 18px; 395 | padding-left: 18px; 396 | font-size: 22px; 397 | font-weight: 300 398 | } 399 | 400 | .header .nav .item.active { 401 | color: #222b38 402 | } 403 | 404 | .header .donate-button .paypal { 405 | width: 80px; 406 | height: 33px; 407 | background: #3b7bbf; 408 | margin-bottom: 3px; 409 | border-radius: 3px; 410 | color: #fff; 411 | text-align: center; 412 | line-height: 32px; 413 | font-size: 15px; 414 | margin-left: 10px; 415 | } 416 | @media (max-width:1100px) { 417 | .header { 418 | position: static; 419 | flex-direction: column 420 | } 421 | .header .donate-button { 422 | flex-direction: row; 423 | margin-top: 8px; 424 | margin-left: 0; 425 | margin-bottom: 8px 426 | } 427 | .header .donate-button .patreon { 428 | margin-right: 12px 429 | } 430 | /* 431 | .header .donate-button .paypal { 432 | width: 168px; 433 | height: 33px; 434 | background: #3b7bbf; 435 | margin-bottom: 3px; 436 | margin-left: 10px; 437 | border-radius: 3px; 438 | color: #fff; 439 | text-align: center; 440 | line-height: 32px; 441 | font-size: 15px 442 | } 443 | */ 444 | .header .logo { 445 | width: 42px; 446 | margin-top: 8px; 447 | margin-bottom: 12px; 448 | margin-right: 0 449 | } 450 | } 451 | 452 | .landing .hero { 453 | display: flex; 454 | justify-content: space-evenly; 455 | align-items: center; 456 | width: calc(100% - 32px); 457 | max-width: 1200px; 458 | color: #444; 459 | margin: 32px 0; 460 | } 461 | 462 | .landing .hero .info { 463 | max-width: 500px 464 | } 465 | 466 | .landing .hero .info h1 { 467 | font-weight: 300; 468 | margin: 0 0 0 -2px 469 | } 470 | 471 | .landing .hero .info p { 472 | margin: 4px 0 473 | } 474 | 475 | .landing .hero .button { 476 | background: #222; 477 | color: #fff; 478 | margin-top: 16px; 479 | margin-right: 8px; 480 | padding: 7px 14px 6px 8px; 481 | border-radius: 6px; 482 | display: inline-flex; 483 | /*align-items: center;*/ 484 | cursor: pointer; 485 | position: relative 486 | } 487 | 488 | .landing .hero .button .svg-inline--fa { 489 | width: 32px; 490 | height: 32px; 491 | margin-right: 4px 492 | } 493 | 494 | .landing .hero .button .options-container .options { 495 | position: absolute; 496 | background: #fff; 497 | color: #333; 498 | border: 1px solid #eee; 499 | right: 0; 500 | top: 54px; 501 | box-sizing: border-box; 502 | border-radius: 6px; 503 | opacity: 0; 504 | pointer-events: none; 505 | transform: translateY(-12px); 506 | transition: all .2s cubic-bezier(.67, .16, .4, 1) 507 | } 508 | 509 | .landing .hero .button .options-container .options .dl-option { 510 | display: flex; 511 | padding: 8px 8px 8px 6px; 512 | align-items: center; 513 | color: #333 514 | } 515 | 516 | .landing .hero .button .options-container .options .dl-option .name { 517 | flex: 1; 518 | margin-right: 32px 519 | } 520 | 521 | .landing .hero .button .options-container .options .dl-option .size { 522 | color: #818e9c; 523 | font-size: 15px 524 | } 525 | 526 | .landing .hero .button .options-container .options .dl-option svg { 527 | margin-right: 6px; 528 | width: 22px; 529 | height: 22px 530 | } 531 | 532 | .landing .hero .button .options-container .options .dl-option:hover { 533 | background: #f7f7f7 534 | } 535 | 536 | .landing .hero .button .options-container:focus { 537 | outline: 0 538 | } 539 | 540 | .landing .hero .button .options-container:focus .options { 541 | opacity: 1; 542 | pointer-events: all; 543 | transform: translateY(0) 544 | } 545 | 546 | .landing .hero .button .options-container:active .right-icon { 547 | transform: translateY(3px) 548 | } 549 | 550 | .landing .hero .button .options-container .right-icon { 551 | width: 18px; 552 | padding: 12px 2px; 553 | cursor: pointer; 554 | transition: transform .1s 555 | } 556 | 557 | .landing .hero .button .text { 558 | display: flex; 559 | flex-direction: column; 560 | margin-right: 10px 561 | } 562 | 563 | .landing .hero .button .text .link { 564 | margin: 0 4px 0 8px; 565 | font-size: 15px 566 | } 567 | 568 | .landing .hero .button .text .details { 569 | color: #ddd; 570 | padding: 0 4px; 571 | font-size: 13px; 572 | line-height: 18px; 573 | border-radius: 4px; 574 | margin-left: 5px 575 | } 576 | 577 | .landing .hero .button .text .details svg { 578 | fill: #ddd; 579 | position: relative; 580 | top: 2px; 581 | left: -1px 582 | } 583 | 584 | .landing .hero .button .changelog, 585 | .landing .hero .button .fast { 586 | position: absolute; 587 | bottom: -24px; 588 | left: 0; 589 | color: #333; 590 | text-decoration: none 591 | } 592 | 593 | .landing .hero .button .changelog { 594 | left: auto; 595 | right: 0 596 | } 597 | 598 | .landing .hero .examples { 599 | margin-right: 32px; 600 | display: flex; 601 | flex-direction: column; 602 | align-items: center; 603 | position:relative; 604 | top: -30px; 605 | } 606 | 607 | .landing .hero .examples .menu { 608 | margin-top: 12px; 609 | display: flex; 610 | justify-content: center; 611 | align-items: center 612 | } 613 | 614 | .landing .hero .examples .menu button { 615 | background: 0 0; 616 | border: none; 617 | cursor: pointer 618 | } 619 | 620 | .landing .hero .examples .menu button i { 621 | font-size: 32px!important; 622 | color: #333 623 | } 624 | 625 | .landing .hero .examples .menu select { 626 | font-size: 18px 627 | } 628 | 629 | .landing .hero .examples .menu .select { 630 | margin: 0 16px; 631 | width: 200px 632 | } 633 | 634 | .landing .social { 635 | margin-top: 16px; 636 | padding: 9px 12px; 637 | border-radius: 6px; 638 | margin-right: 38px; 639 | text-align: center 640 | } 641 | 642 | .landing .social p { 643 | color: #444 644 | } 645 | 646 | .landing .social svg { 647 | font-size: 28px; 648 | margin: 0 12px 0 0; 649 | cursor: pointer; 650 | color: #949fad; 651 | pointer: cursor 652 | } 653 | 654 | .landing .social svg:hover { 655 | opacity: .8 656 | } 657 | 658 | .landing .social .fa-telegram { 659 | color: #08c 660 | } 661 | 662 | .landing .social .fa-youtube { 663 | color: red 664 | } 665 | 666 | .landing .social .fa-discord { 667 | color: #7289da 668 | } 669 | 670 | .landing .social .fa-twitter { 671 | color: #00acee 672 | } 673 | 674 | .landing .links { 675 | margin-top: 12px; 676 | margin-right: 38px; 677 | display: flex; 678 | flex-direction: row; 679 | flex-wrap: wrap; 680 | justify-content: space-between; 681 | font-size: 18px 682 | } 683 | 684 | .landing .links a:hover { 685 | opacity: .9 686 | } 687 | 688 | .landing { 689 | display: flex; 690 | flex-direction: column; 691 | justify-content: flex-start; 692 | align-items: center; 693 | background: linear-gradient(168deg, #fff 800px, #f6f9fc 800px); 694 | padding-bottom: 32px 695 | } 696 | 697 | .landing .section { 698 | display: flex; 699 | max-width: 1100px; 700 | width: calc(100vw - 32px); 701 | justify-content: space-around; 702 | margin-top: 32px; 703 | background: #fff; 704 | color: #222; 705 | border-radius: 6px; 706 | border: 1px solid #efefef 707 | } 708 | 709 | .landing .section h1, 710 | .landing .section h2 { 711 | font-weight: 300; 712 | margin: 0 713 | } 714 | 715 | .landing .section .block { 716 | flex: 1; 717 | padding: 18px 16px; 718 | margin: 12px; 719 | border-radius: 6px; 720 | } 721 | 722 | .landing .section .block td { 723 | width: 120px; 724 | line-height: 1.5 725 | } 726 | 727 | .landing .section .block td .sidenote { 728 | font-size: 75%; 729 | position: relative; 730 | top: -5px 731 | } 732 | 733 | .landing .section .block pre { 734 | white-space: pre-wrap; 735 | word-break: break-word 736 | } 737 | 738 | .landing ul { 739 | padding-inline-start: 22px 740 | } 741 | 742 | .landing i { 743 | max-width: calc(100vw - 64px); 744 | text-align: center; 745 | font-size: 14px 746 | } 747 | 748 | @media (max-width:1500px) { 749 | .landing .hero .examples .codeblock { 750 | min-width: auto 751 | } 752 | } 753 | 754 | @media (max-width:1200px) { 755 | .landing .hero { 756 | margin: 32px 0; 757 | flex-direction: column 758 | } 759 | .landing .hero .info { 760 | margin-bottom: 32px; 761 | text-align: center 762 | } 763 | .landing .hero .info .button { 764 | text-align: left 765 | } 766 | .landing .hero .info .button:last-child { 767 | margin-right: 0 768 | } 769 | .landing .hero .info .links, 770 | .landing .hero .info .social { 771 | margin-right: 0 772 | } 773 | .landing .hero .info .social { 774 | margin-top: 16px 775 | } 776 | .landing .hero .info .social i { 777 | font-size: 28px; 778 | margin-left: 6px; 779 | margin-right: 6px 780 | } 781 | .landing .hero .examples { 782 | margin: 0 8px 0 8px!important 783 | } 784 | .landing .editors { 785 | margin-right: 0 786 | } 787 | } 788 | 789 | @media (max-width:750px) { 790 | .landing .section { 791 | flex-direction: column 792 | } 793 | } 794 | 795 | .playground { 796 | display: flex; 797 | flex-direction: column 798 | } 799 | 800 | .playground .editor { 801 | display: flex; 802 | flex: 1 803 | } 804 | 805 | .playground .editor .codeblock, 806 | .playground .editor .output { 807 | flex: 1; 808 | margin: 6px 809 | } 810 | 811 | .playground .select { 812 | margin-left: 8px; 813 | width: 220px 814 | } 815 | 816 | @media (max-width:1100px) { 817 | .playground .editor { 818 | flex-direction: column 819 | } 820 | .playground .editor .codeblock { 821 | max-width: calc(100vw - 36px) 822 | } 823 | } 824 | 825 | .editors-info { 826 | max-width: 600px; 827 | text-align: center; 828 | margin-right: auto; 829 | margin-left: auto; 830 | margin-top: 32px 831 | } 832 | 833 | .editors-info h1 { 834 | font-weight: 300; 835 | margin: 0 0 0 -2px 836 | } 837 | 838 | .editors-info p { 839 | margin: 4px 0 840 | } 841 | 842 | .editors { 843 | display: flex; 844 | justify-content: space-evenly; 845 | width: calc(100vw - 32px); 846 | max-width: 600px; 847 | margin-top: 32px; 848 | margin-right: auto; 849 | margin-left: auto; 850 | flex-wrap: wrap 851 | } 852 | 853 | .editors .editor { 854 | display: flex; 855 | flex-direction: column; 856 | align-items: center; 857 | justify-content: center; 858 | background: #fff; 859 | color: #000; 860 | height: 100px; 861 | width: 125px; 862 | border: 1px solid #efefef; 863 | border-radius: 6px; 864 | text-decoration: none; 865 | box-shadow: none; 866 | cursor: pointer; 867 | margin-bottom: 16px; 868 | transition: transform .1s, box-shadow .1s 869 | } 870 | 871 | .editors .editor:hover { 872 | transform: translateY(-3px); 873 | box-shadow: 0 6px 8px 0 rgba(0, 0, 0, .05), 0 16px 32px -2px rgba(0, 0, 0, .05) 874 | } 875 | 876 | .editors .editor img { 877 | flex: 0; 878 | height: 42px; 879 | margin-bottom: 6px 880 | } 881 | 882 | .built-in-v { 883 | display: grid; 884 | grid-template-columns: 1fr 1fr; 885 | grid-auto-flow: row dense; 886 | margin-top: 16px 887 | } 888 | 889 | .built-in-v .first, 890 | .built-in-v .second { 891 | padding-bottom: 16px 892 | } 893 | 894 | .built-in-v .first { 895 | grid-column-start: 1; 896 | padding-right: 70px 897 | } 898 | 899 | .built-in-v .second { 900 | grid-column-start: 2 901 | } 902 | 903 | @media (max-width:750px) { 904 | .built-in-v { 905 | grid-template-columns: 1fr 906 | } 907 | .built-in-v .first, 908 | .built-in-v .second { 909 | grid-column-start: 1 910 | } 911 | } 912 | 913 | .landing .hero .button .options-container .options:focus, .landing .hero .button .options-container .options:hover { 914 | opacity: 1; 915 | pointer-events: all !important; 916 | transform: translateY(0) 917 | } 918 | .book { 919 | position:absolute; right:0px; top:50px; text-align:center; display:block; width:155px; font-size:12px; 920 | } 921 | @media (max-width:800px) { 922 | .book { 923 | display:none; 924 | 925 | } 926 | } 927 | 928 | .text-center { 929 | text-align: center; 930 | } 931 | 932 | 933 | .left:hover { 934 | cursor: pointer; 935 | } 936 | 937 | .right:hover { 938 | cursor: pointer; 939 | } 940 | 941 | .news { 942 | font-size: 80%; 943 | margin-top: 0 !important; 944 | flex-direction: column 945 | } 946 | 947 | .news .container { 948 | display: flex; 949 | overflow-x: auto; 950 | scroll-behavior: smooth; 951 | -webkit-overflow-scrolling: touch 952 | } 953 | 954 | .news .block { 955 | min-width: 89.5px 956 | } 957 | 958 | .news_header { 959 | text-align: center; 960 | padding-top: 1rem 961 | } 962 | 963 | .news_date { 964 | font-weight: 700 965 | } 966 | 967 | .text-center { 968 | text-align: center 969 | } 970 | 971 | @media (max-width:920px) { 972 | .news .container { 973 | flex-direction: column 974 | } 975 | 976 | .left { 977 | display: none 978 | } 979 | 980 | .right { 981 | display: none 982 | } 983 | } 984 | 985 | .left { 986 | position: absolute; 987 | left: 5px; 988 | top: 50%; 989 | transform: translateY(-50%); 990 | height: 180px; 991 | width: 35px; 992 | } 993 | 994 | .right { 995 | position: absolute; 996 | right: 5px; 997 | top: 50%; 998 | transform: translateY(-50%); 999 | height: 180px; 1000 | width: 35px; 1001 | } 1002 | 1003 | .actual_news { 1004 | padding: 0 40px; 1005 | position: relative; 1006 | } 1007 | .lang_select { 1008 | position: relative; 1009 | top: 40px; 1010 | left: -44px; 1011 | } 1012 | @media (max-width:1100px) { 1013 | .lang_select { 1014 | position: absolute !important; 1015 | right: 10px; 1016 | top:10px; 1017 | left: auto; 1018 | 1019 | } 1020 | } 1021 | -------------------------------------------------------------------------------- /website2_v/static/img/arrow-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/website2_v/static/img/arrow-left.png -------------------------------------------------------------------------------- /website2_v/static/img/arrow-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/website2_v/static/img/arrow-right.png -------------------------------------------------------------------------------- /website2_v/static/img/book.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/website2_v/static/img/book.jpg -------------------------------------------------------------------------------- /website2_v/static/img/book2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/website2_v/static/img/book2.jpg -------------------------------------------------------------------------------- /website2_v/static/img/book_copy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/website2_v/static/img/book_copy.jpg -------------------------------------------------------------------------------- /website2_v/static/img/doom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/website2_v/static/img/doom.png -------------------------------------------------------------------------------- /website2_v/static/img/down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/website2_v/static/img/down.png -------------------------------------------------------------------------------- /website2_v/static/img/emacs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/website2_v/static/img/emacs.png -------------------------------------------------------------------------------- /website2_v/static/img/engine_screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/website2_v/static/img/engine_screenshot.png -------------------------------------------------------------------------------- /website2_v/static/img/gg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/website2_v/static/img/gg.png -------------------------------------------------------------------------------- /website2_v/static/img/huly.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/website2_v/static/img/huly.png -------------------------------------------------------------------------------- /website2_v/static/img/intellij.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/website2_v/static/img/intellij.png -------------------------------------------------------------------------------- /website2_v/static/img/mastodon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/website2_v/static/img/mastodon.png -------------------------------------------------------------------------------- /website2_v/static/img/patreon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/website2_v/static/img/patreon.png -------------------------------------------------------------------------------- /website2_v/static/img/sponsor_chipnetics.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 20 | 22 | 23 | 25 | image/svg+xml 26 | 28 | 29 | 30 | 31 | 32 | 34 | 54 | 170 | 171 | -------------------------------------------------------------------------------- /website2_v/static/img/sponsor_mx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/website2_v/static/img/sponsor_mx.png -------------------------------------------------------------------------------- /website2_v/static/img/sponsor_octoberswimmer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/website2_v/static/img/sponsor_octoberswimmer.png -------------------------------------------------------------------------------- /website2_v/static/img/sponsor_syndica.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/website2_v/static/img/sponsor_syndica.jpg -------------------------------------------------------------------------------- /website2_v/static/img/sponsor_syndica_copy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/website2_v/static/img/sponsor_syndica_copy.jpg -------------------------------------------------------------------------------- /website2_v/static/img/sponsor_threefold.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 92 | 93 | 94 | 96 | 101 | 103 | 105 | 107 | 114 | 115 | 119 | 120 | 121 | -------------------------------------------------------------------------------- /website2_v/static/img/sublime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/website2_v/static/img/sublime.png -------------------------------------------------------------------------------- /website2_v/static/img/v-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/website2_v/static/img/v-logo.png -------------------------------------------------------------------------------- /website2_v/static/img/veasel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/website2_v/static/img/veasel.png -------------------------------------------------------------------------------- /website2_v/static/img/veery.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/website2_v/static/img/veery.jpg -------------------------------------------------------------------------------- /website2_v/static/img/vim.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/website2_v/static/img/vim.png -------------------------------------------------------------------------------- /website2_v/static/img/vscode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/website2_v/static/img/vscode.png -------------------------------------------------------------------------------- /website2_v/static/img/youtube_comp_speed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/website2_v/static/img/youtube_comp_speed.png -------------------------------------------------------------------------------- /website2_v/static/img/youtube_compile_speed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vlang/website/a70eb0d7b80618f3371d1d79f8f8df5c84dc1c34/website2_v/static/img/youtube_compile_speed.png -------------------------------------------------------------------------------- /website2_v/templates/footer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /website2_v/templates/header.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | @css "app.css?43" 10 | 13 | The V Programming Language 14 | 15 | 16 |

17 | 18 |
19 |
20 | 21 | 22 |
23 | @{veb.raw(build_tr_menu(ctx.lang))} 24 |
25 | 26 | 27 | 28 | 29 | 47 | 62 |
63 |
64 | -------------------------------------------------------------------------------- /website2_v/templates/header_component.html: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /website2_v/templates/products.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | Login 17 | @css 'src/templates/products.css' 18 | 19 | 20 |
@include 'header_component.html'
21 |

Hi, ${user.username}! you are online

22 | 23 |
24 |
25 |
26 | 27 | 28 |
29 |
30 | 31 |
32 |
33 | 36 |
37 | 72 |
73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | @for product in user.products 84 | 85 | 86 | 87 | 88 | 89 | @end 90 | 91 |
IDNameCreated date
${product.id}${product.name}${product.created_at}
92 |
93 | 94 | -------------------------------------------------------------------------------- /website2_v/translations/en.tr: -------------------------------------------------------------------------------- 1 | examples 2 | Examples 3 | ----- 4 | documentation 5 | Documentation 6 | ----- 7 | modules 8 | Modules 9 | ----- 10 | faq 11 | FAQ 12 | ----- 13 | playground 14 | Playground 15 | ----- 16 | built_in_v 17 | Built in V 18 | ----- 19 | the_v_lang 20 | The V Programming Language 21 | ----- 22 | v_slogan 23 | Simple, fast, safe, compiled language for developing maintainable software 24 | ----- 25 | includes_binaries 26 | includes binaries for 3 systems 27 | ----- 28 | install_source 29 | Or install V from source 30 | ----- 31 | couple_seconds 32 | this will take a couple of seconds 33 | ----- 34 | wip_info 35 | V is an actively developed language at an early stage. 36 | Features that are still being worked on are marked with $wip 37 |
38 | Everything else on this page and the docs has been implemented and open-sourced. 39 |

40 | By the time of the V 1.0 release planned for December 2019, there will be no $wip's left. 41 | ----- 42 | forum 43 | Forum 44 | ----- 45 | blog 46 | Blog 47 | ----- 48 | fast_compilation 49 | Fast compilation 50 | ----- 51 | safety 52 | Safety 53 | ----- 54 | performance 55 | Performance 56 | ----- 57 | simple_language_for_maintainable_programs 58 | Simple language for building maintainable programs 59 | ----- 60 | you_can_learn 61 | You can learn the entire language by going through the 62 | documentation over a 63 | weekend, and in most cases there's only one way to do something. 64 | ----- 65 | this_results_in_simple 66 | This results in simple, readable, and maintainable code. 67 | ----- 68 | despite_being_simple 69 | Despite being simple, V gives a lot of power to the developer and can be used in pretty much every field, including systems programming, webdev, gamedev, GUI, mobile, science, embedded, tooling, etc. 70 | ----- 71 | v_is_similar_to_go 72 | V is very similar to Go. If you know Go, you already know ≈80% of V. 73 | Things V improves on Go: vlang.io/compare#go. 74 | ----- 75 | download_for_macos 76 | Download for macOS 77 | ----- 78 | download_for_windows 79 | Download for Windows 80 | ----- 81 | download_for_linux 82 | Download for Linux 83 | ----- 84 | zero_deps 85 | 400 KB compiler with zero dependencies 86 | ----- 87 | c_translation 88 | C/C++ translation 89 | ----- 90 | introduction 91 | Introduction 92 | ----- 93 | comments 94 | Comments 95 | ----- 96 | functions 97 | Functions 98 | ----- 99 | variables 100 | Variables 101 | ----- 102 | basic_types 103 | Basic types 104 | ----- 105 | strings 106 | Strings 107 | ----- 108 | arrays 109 | Arrays 110 | ----- 111 | maps 112 | Maps 113 | ----- 114 | if 115 | If 116 | ----- 117 | in_op 118 | In operator 119 | ----- 120 | for_loop 121 | For loop 122 | ----- 123 | switch 124 | Switch 125 | ----- 126 | structs 127 | Structs 128 | ----- 129 | access_mod 130 | Access modifiers 131 | ----- 132 | methods 133 | Methods 134 | ----- 135 | pure_fns 136 | Pure functions 137 | ----- 138 | high_fns 139 | High order functions 140 | ----- 141 | constants 142 | Constants 143 | ----- 144 | modules 145 | Modules 146 | ----- 147 | interfaces 148 | Interfaces 149 | ----- 150 | enums 151 | Enums 152 | ----- 153 | optionals_and_errors 154 | Option types & error handling 155 | ----- 156 | generics 157 | Generics 158 | ----- 159 | concurrency 160 | Concurrency 161 | ----- 162 | decoding_json 163 | Decoding JSON 164 | ----- 165 | testing 166 | Testing 167 | ----- 168 | memory_management 169 | Memory management 170 | ----- 171 | fast_comp1 172 | V compiles between ≈100k and 1.2 million lines of code per second per CPU core. 173 | ----- 174 | fast_comp2 175 | V compiles itself in 0.15 - 0.6 seconds. 176 | ----- 177 | fast_comp3 178 | ----- 179 | fast_comp4 180 | ----- 181 | no_null 182 | No null 183 | ----- 184 | latest_news 185 | Latest news & 186 | ----- 187 | what_developers_say 188 | What developers say about V 189 | ----- 190 | v_review_1 191 | The V development team does an amazing job. I've never seen a language evolve that fast; 192 | I suspect you guys never sleep. I hope V will remain a simple, clean language and have a bright future. 193 | Thanks for all your hard work. 194 | ----- 195 | v_review_2 196 | I'm mostly surprised by how many things "just work". 197 | Channels and closures made implementing asynchronous callbacks for C functions such a breeze. 198 | Thanks for that! 😄 199 | ----- 200 | v_review_3 201 | Been programming for around 30 years. Have done some C/C++, VB, and lots of Delphi years ago. 202 | Then PHP/Ruby for over 15 years. Bash, Python too. Recently I've wanted to start using a compiled 203 | language for reasons, and have looked at Rust, Go, and a couple others. I stumbled upon V a few weeks 204 | ago and have been very surprised by how easy it is to pick up. I am really enjoying writing V and 205 | feel like I am already productive. Even to the point I'm now looking at making a small ... 206 | ----- 207 | partners_sponsors 208 | Partners & Sponsors 209 | ----- 210 | become_sponsor_via_github 211 | Become a sponsor via GitHub Sponsors 212 | ----- 213 | is_v_still_fast 214 | Is V still fast? 215 | ----- 216 | built_in_v 217 | Built in V 218 | ----- 219 | book1 220 | The first printed book on V! 221 | ----- 222 | book2 223 | The 2nd printed book on V! 224 | 225 | -------------------------------------------------------------------------------- /website2_v/translations/es.tr: -------------------------------------------------------------------------------- 1 | examples 2 | Ejemplos 3 | ----- 4 | documentation 5 | Documentación 6 | ----- 7 | modules 8 | Módulos 9 | ----- 10 | faq 11 | Preguntas Frecuentes 12 | ----- 13 | playground 14 | Probar V 15 | ----- 16 | built_in_v 17 | Hecho con V 18 | ----- 19 | the_v_lang 20 | El lenguage de programación V 21 | ----- 22 | v_slogan 23 | Simple, fast, safe, compiled language for developing maintainable software 24 | Lenguaje compilado simple, rápido y seguro para desarrollar software mantenible 25 | ----- 26 | includes_binaries 27 | incluye ejecutables para los 3 sistemas 28 | ----- 29 | install_source 30 | o instala V desde código fuente 31 | ----- 32 | couple_seconds 33 | esto tomará un par de segundos 34 | ----- 35 | wip_info 36 | V está siendo desarrollado de manera activa en una etapa temprana. 37 | Las características que están siendo trabajadas están marcadas con $wip 38 |
39 | Todo lo demás de esta página y los docs han sido implementados y dejados como código abierto 40 |

41 | Para el momento en que la versión 1.0 de V sea lanzada, no quedarán $wip 42 | ----- 43 | forum 44 | Foro 45 | ----- 46 | blog 47 | Blog 48 | ----- 49 | fast_compilation 50 | Rápida compilación 51 | ----- 52 | safety 53 | Seguridad 54 | ----- 55 | performance 56 | Desempeño 57 | ----- 58 | simple_language_for_maintainable_programs 59 | Lenguaje simple para construir programas mantenibles 60 | ----- 61 | you_can_learn 62 | Puedes aprender el lenguage completo en una semana a través de la 63 | documentación 64 | y en muchos casos existe una sola manera de hacer algo. 65 | ----- 66 | this_results_in_simple 67 | Esto da como resultado código simple, legible y mantanible. 68 | ----- 69 | despite_being_simple 70 | A pesar de ser simple, V otorga gran potencialidad al desarrollador y puede ser usado en casi cualquier campo, programación de sistemas, desarrollo web, desarrollo de juegos, interfaces gráficas, mobile, ciencia, programas embebidos, herramientas, etc. 71 | ----- 72 | v_is_similar_to_go 73 | V es muy similar a Go. Si conoces Go, sabrás cerca del 80% de V. 74 | Las cosas que V mejora sobre Go: vlang.io/compare#go. 75 | ----- 76 | download_for_macos 77 | Desacargar para macOS 78 | ----- 79 | download_for_windows 80 | Descargar para Windows 81 | ----- 82 | download_for_linux 83 | Descargar para Linux 84 | ----- 85 | zero_deps 86 | Compilador de 400 KB con cero dependencias 87 | ----- 88 | c_translation 89 | Conversión C/C++ 90 | ----- 91 | introduction 92 | Introducción 93 | ----- 94 | comments 95 | Comentarios 96 | ----- 97 | functions 98 | Funciones 99 | ----- 100 | variables 101 | Variables 102 | ----- 103 | basic_types 104 | Tipos básicos 105 | ----- 106 | strings 107 | Strings 108 | ----- 109 | arrays 110 | Arrays 111 | ----- 112 | maps 113 | Maps 114 | ----- 115 | if 116 | If 117 | ----- 118 | in_op 119 | Operador In 120 | ----- 121 | for_loop 122 | Bucle For 123 | ----- 124 | switch 125 | Switch 126 | ----- 127 | structs 128 | Structs 129 | ----- 130 | access_mod 131 | Modificadores de acceso 132 | ----- 133 | methods 134 | Métodos 135 | ----- 136 | pure_fns 137 | Funciones puras 138 | ----- 139 | high_fns 140 | Funciones de alto nivel 141 | ----- 142 | constants 143 | Constantes 144 | ----- 145 | modules 146 | Módulos 147 | ----- 148 | interfaces 149 | Interfaces 150 | ----- 151 | enums 152 | Enums 153 | ----- 154 | optionals_and_errors 155 | Tipos de datos para opciones y errores 156 | ----- 157 | generics 158 | Generics 159 | ----- 160 | concurrency 161 | Concurrencia 162 | ----- 163 | decoding_json 164 | Decodificación de JSON 165 | ----- 166 | testing 167 | Testing 168 | ----- 169 | memory_management 170 | Gestión de memoria 171 | ----- 172 | fast_comp1 173 | V compila entre 100.000 y 1,2 millones de líneas de código por segundo por cada core de CPU. 174 | ----- 175 | fast_comp2 176 | V mismo se compila en 0,15 - 0,6 segundos. 177 | ----- 178 | fast_comp3 179 | ----- 180 | fast_comp4 181 | ----- 182 | no_null 183 | Sin null 184 | ----- 185 | latest_news 186 | Últimas noticias & 187 | ----- 188 | what_developers_say 189 | Que dicen los desarrolladores acerca de V 190 | ----- 191 | v_review_1 192 | El equipo de desarrollo de V hace un trabajo increíble. Nunca he visto que un lenguaje evolucione tan rápido. 193 | Sospecho que ustedes nunca duermen. Espero que V siga siendo un lenguaje simple y limpio y que tenga un futuro brillante. 194 | Gracias por todo su arduo trabajo. 195 | ----- 196 | v_review_2 197 | Me sorprende mucho la cantidad de cosas que "simplemente funcionan". 198 | Los channels y closures hicieron que la implementación del retorno de llamadas asincrónicas para funciones de C fuera muy sencilla. 199 | ¡Gracias por eso! 😄 200 | ----- 201 | v_review_3 202 | Llevo programando unos 30 años. Hace años trabajé con C/C++, VB y mucho Delphi. 203 | Luego, PHP/Ruby durante más de 15 años. Bash, Python también. Recientemente, quise comenzar a usar un lenguaje compilado 204 | por "razones" y estudié Rust, Go y un par más. Me topé con V hace unas semanas y me sorprendió mucho lo fácil que es aprender a usarlo. 205 | Realmente disfruto escribir en V y siento que ya soy productivo. Incluso ahora estoy pensando en hacer un pequeño... 206 | ----- 207 | partners_sponsors 208 | Partners & Sponsors 209 | ----- 210 | become_sponsor_via_github 211 | Conviértete en Sponsor a través del programa de Sponsors de Github 212 | ----- 213 | is_v_still_fast 214 | ¿Sigue siendo V rápido? 215 | ----- 216 | built_in_v 217 | Desarrollado con V 218 | ----- 219 | book1 220 | ¡El primer libro impreso sobre V! 221 | ----- 222 | book2 223 | ¡El segundo libro impreso sobre V! 224 | -------------------------------------------------------------------------------- /website2_v/translations/ru.tr: -------------------------------------------------------------------------------- 1 | examples 2 | Примеры 3 | ----- 4 | tutorials 5 | Туториалы 6 | ----- 7 | documentation 8 | Документация 9 | ----- 10 | modules 11 | Модули 12 | ----- 13 | faq 14 | FAQ 15 | ----- 16 | playground 17 | Песочница 18 | ----- 19 | built_in_v 20 | Написано на V 21 | ----- 22 | the_v_lang 23 | Язык программирования V 24 | ----- 25 | v_slogan 26 | Простой, быстрый, безопасный, компилируемый язык для разработки легко поддерживаемых приложений 27 | ----- 28 | includes_binaries 29 | включает в себя бинарые файлы для 3 систем 30 | ----- 31 | install_source 32 | или установите V из исходного кода 33 | ----- 34 | couple_seconds 35 | это займет пару секунд 36 | ----- 37 | wip_info 38 | V является активно развивающимся языком на ранней стадии. 39 | Функции над которыми еще ведется работа, отмечены знаком $wip 40 | 41 | Всё остальное на этой странице и в документах было реализовано с открытым исходным кодом. 42 | К моменту выхода V 1.0, запланированному на декабрь 2019 года, не останется $wip. 43 | ----- 44 | forum 45 | Форум 46 | ----- 47 | blog 48 | Блог 49 | ----- 50 | ----- 51 | fast_compilation 52 | Быстрая компиляция 53 | ----- 54 | safety 55 | Безопасность 56 | ----- 57 | performance 58 | Производительность 59 | ----- 60 | simple_language_for_maintainable_programs 61 | Простота 62 | ----- 63 | you_can_learn 64 | Вы можете выучить весь язык, просто пройдясь по 65 | документации 66 | за выходные, и в большинстве случаев существует только один способ сделать что-либо. 67 | ----- 68 | this_results_in_simple 69 | Это приводит к простому, читаемому и легко поддерживаемому коду. 70 | ----- 71 | despite_being_simple 72 | Несмотря на свою простоту, V даёт разработчику много возможностей и может использоваться практически в любой области: системное программирование, веб-разработка, разработка игр, GUI, мобильные приложения, наука, встраиваемые системы, инструменты и т.д. 73 | ----- 74 | v_is_similar_to_go 75 | V очень похож на Go. Если вы знаете Go, то уже знаете примерно 80% V. Чем V лучше Go: vlang.io/compare#go. 76 | ----- 77 | download_for_macos 78 | Загрузить для macOS 79 | ----- 80 | download_for_windows 81 | Загрузить для Windows 82 | ----- 83 | download_for_linux 84 | Загрузить для Linux 85 | ----- 86 | zero_deps 87 | 400 KB компилятор без зависимостей 88 | ----- 89 | c_translation 90 | Трансляция из C/C++ 91 | ----- 92 | introduction 93 | Введение 94 | ----- 95 | comments 96 | Комментарии 97 | ----- 98 | functions 99 | Функции 100 | ----- 101 | variables 102 | Переменные 103 | ----- 104 | basic_types 105 | Базовые типы 106 | ----- 107 | strings 108 | Строки 109 | ----- 110 | arrays 111 | Массивы 112 | ----- 113 | maps 114 | Maps 115 | ----- 116 | if 117 | If 118 | ----- 119 | in_op 120 | Оператор in 121 | ----- 122 | for_loop 123 | Цикл for 124 | ----- 125 | switch 126 | Switch 127 | ----- 128 | structs 129 | Cтруктуры 130 | ----- 131 | access_mod 132 | Модификаторы доступа 133 | ----- 134 | methods 135 | Методы 136 | ----- 137 | pure_fns 138 | Чистые функции 139 | ----- 140 | high_fns 141 | Функции высокого приоритета 142 | ----- 143 | constants 144 | Константы 145 | ----- 146 | modules 147 | Модули 148 | ----- 149 | interfaces 150 | Интерфейсы 151 | ----- 152 | enums 153 | Enums 154 | ----- 155 | optionals_and_errors 156 | Опц. типы и обработка ошибок 157 | ----- 158 | generics 159 | Generics 160 | ----- 161 | concurrency 162 | Concurrency 163 | ----- 164 | decoding_json 165 | Работа с JSON 166 | ----- 167 | testing 168 | Тестирование 169 | ----- 170 | memory_management 171 | Управление памятью 172 | ----- 173 | fast_comp1 174 | V компилирует ≈1.2 миллиона строк кода в секунду на одном ядре. 175 | ----- 176 | fast_comp2 177 | Такая скорость достигается за счет прямой генерации в машинный (нативный) код $wip и сильной модульности кода. 178 | ----- 179 | fast_comp3 180 | V компилирует сам себя за 0.3 - 0.6 секунд. 181 | ----- 182 | fast_comp4 183 | V также может использовать C, тогда скорость компиляции падает до ≈100k строк/сек/CPU. 184 | ----- 185 | no_null 186 | Нет нулевых указателей 187 | ----- 188 | latest_news 189 | Последние новости и 190 | ----- 191 | blog_posts 192 | записи в блоге 193 | ----- 194 | what_developers_say 195 | Что говорят о V разработчикиѠ 196 | ----- 197 | v_review_1 198 | Команда разработчиков V делает потрясающую работу. Я никогда не видел, чтобы язык развивался так быстро; подозреваю, что вы, ребята, вообще не спите. Надеюсь, V останется простым, чистым языком и будет иметь светлое будущее. Спасибо за ваш труд. 199 | ----- 200 | v_review_2 201 | Я в основном удивлен тем, сколько всего "просто работает". Каналы и замыкания сделали реализацию асинхронных обратных вызовов для C-функций невероятно простой задачей. Спасибо за это! 😄 202 | ----- 203 | v_review_3 204 | Программирую уже около 30 лет. Раньше писал немного на C/C++, VB, много работал с Delphi. Затем перешел на PHP/Ruby, где проработал более 15 лет. Также использовал Bash, Python. Недавно захотел начать использовать компилируемый язык по ряду причин, и рассматривал Rust, Go и некоторые другие. Несколько недель назад наткнулся на V и был очень удивлен, насколько легко его освоить. Мне действительно нравится писать на V, и я уже чувствую себя продуктивным. Настолько, что теперь подумываю сделать небольшой... 205 | ----- 206 | partners_sponsors 207 | Партнёры и спонсоры 208 | ----- 209 | become_sponsor_via_github 210 | Стать спонсором через GitHub или Boosty 211 | ----- 212 | is_v_still_fast 213 | V всё ещё быстр? 214 | ----- 215 | built_in_v 216 | Написано на V 217 | ----- 218 | book1 219 | Первая книга по V! 220 | ----- 221 | book2 222 | Вторая книга по V! 223 | -------------------------------------------------------------------------------- /website2_v/v.mod: -------------------------------------------------------------------------------- 1 | Module { 2 | name: 'website2_v' 3 | description: '' 4 | version: '0.0.0' 5 | license: 'MIT' 6 | dependencies: [] 7 | } 8 | --------------------------------------------------------------------------------